diff --git a/chrome/browser/background_sync/background_sync_permission_context.cc b/chrome/browser/background_sync/background_sync_permission_context.cc index 4a9f16df..84350dd 100644 --- a/chrome/browser/background_sync/background_sync_permission_context.cc +++ b/chrome/browser/background_sync/background_sync_permission_context.cc
@@ -6,12 +6,10 @@ #include "base/logging.h" #include "components/content_settings/core/common/content_settings_types.h" -#include "content/public/browser/permission_type.h" BackgroundSyncPermissionContext::BackgroundSyncPermissionContext( Profile* profile) : PermissionContextBase(profile, - content::PermissionType::BACKGROUND_SYNC, CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC) {} void BackgroundSyncPermissionContext::CancelPermissionRequest(
diff --git a/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.cc b/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.cc index 4f47cc65..d7a64313 100644 --- a/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.cc +++ b/chrome/browser/browsing_data/browsing_data_remover_impl_unittest.cc
@@ -39,7 +39,6 @@ #include "content/public/browser/cookie_store_factory.h" #include "content/public/browser/dom_storage_context.h" #include "content/public/browser/local_storage_usage_info.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/storage_partition.h" #include "content/public/test/mock_download_manager.h" #include "content/public/test/test_browser_thread.h"
diff --git a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc index 26ddb051..64a954a 100644 --- a/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc +++ b/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
@@ -558,20 +558,20 @@ explicit RemovePermissionPromptCountsTest(TestingProfile* profile) : autoblocker_(PermissionDecisionAutoBlocker::GetForProfile(profile)) {} - int GetDismissCount(const GURL& url, content::PermissionType permission) { + int GetDismissCount(const GURL& url, ContentSettingsType permission) { return autoblocker_->GetDismissCount(url, permission); } - int GetIgnoreCount(const GURL& url, content::PermissionType permission) { + int GetIgnoreCount(const GURL& url, ContentSettingsType permission) { return autoblocker_->GetIgnoreCount(url, permission); } - int RecordIgnore(const GURL& url, content::PermissionType permission) { + int RecordIgnore(const GURL& url, ContentSettingsType permission) { return autoblocker_->RecordIgnore(url, permission); } bool ShouldChangeDismissalToBlock(const GURL& url, - content::PermissionType permission) { + ContentSettingsType permission) { return autoblocker_->RecordDismissAndEmbargo(url, permission); } @@ -1575,17 +1575,17 @@ { // Test REMOVE_HISTORY. EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, - content::PermissionType::GEOLOCATION)); + CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(2, tester.RecordIgnore(kOrigin1, - content::PermissionType::GEOLOCATION)); + CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, - content::PermissionType::NOTIFICATIONS)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); tester.ShouldChangeDismissalToBlock(kOrigin1, - content::PermissionType::MIDI_SYSEX); + CONTENT_SETTINGS_TYPE_MIDI_SYSEX); EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, - content::PermissionType::DURABLE_STORAGE)); + CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); tester.ShouldChangeDismissalToBlock(kOrigin2, - content::PermissionType::NOTIFICATIONS); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS); BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, @@ -1593,45 +1593,45 @@ // kOrigin1 should be gone, but kOrigin2 remains. EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, - content::PermissionType::GEOLOCATION)); + CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, - content::PermissionType::NOTIFICATIONS)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, - content::PermissionType::MIDI_SYSEX)); + CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); EXPECT_EQ(1, tester.GetIgnoreCount( - kOrigin2, content::PermissionType::DURABLE_STORAGE)); + kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); EXPECT_EQ(1, tester.GetDismissCount( - kOrigin2, content::PermissionType::NOTIFICATIONS)); + kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), BrowsingDataRemover::REMOVE_HISTORY, false); // Everything should be gone. EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, - content::PermissionType::GEOLOCATION)); + CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, - content::PermissionType::NOTIFICATIONS)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, - content::PermissionType::MIDI_SYSEX)); + CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); EXPECT_EQ(0, tester.GetIgnoreCount( - kOrigin2, content::PermissionType::DURABLE_STORAGE)); + kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); EXPECT_EQ(0, tester.GetDismissCount( - kOrigin2, content::PermissionType::NOTIFICATIONS)); + kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); } { // Test REMOVE_SITE_DATA. EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, - content::PermissionType::GEOLOCATION)); + CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(2, tester.RecordIgnore(kOrigin1, - content::PermissionType::GEOLOCATION)); + CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(1, tester.RecordIgnore(kOrigin1, - content::PermissionType::NOTIFICATIONS)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); tester.ShouldChangeDismissalToBlock(kOrigin1, - content::PermissionType::MIDI_SYSEX); + CONTENT_SETTINGS_TYPE_MIDI_SYSEX); EXPECT_EQ(1, tester.RecordIgnore(kOrigin2, - content::PermissionType::DURABLE_STORAGE)); + CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); tester.ShouldChangeDismissalToBlock(kOrigin2, - content::PermissionType::NOTIFICATIONS); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS); BlockUntilOriginDataRemoved(AnHourAgo(), base::Time::Max(), BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, @@ -1639,15 +1639,15 @@ // kOrigin2 should be gone, but kOrigin1 remains. EXPECT_EQ(2, tester.GetIgnoreCount(kOrigin1, - content::PermissionType::GEOLOCATION)); + CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(1, tester.GetIgnoreCount(kOrigin1, - content::PermissionType::NOTIFICATIONS)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); EXPECT_EQ(1, tester.GetDismissCount(kOrigin1, - content::PermissionType::MIDI_SYSEX)); + CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); EXPECT_EQ(0, tester.GetIgnoreCount( - kOrigin2, content::PermissionType::DURABLE_STORAGE)); + kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); EXPECT_EQ(0, tester.GetDismissCount( - kOrigin2, content::PermissionType::NOTIFICATIONS)); + kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); BlockUntilBrowsingDataRemoved(AnHourAgo(), base::Time::Max(), BrowsingDataRemover::REMOVE_SITE_USAGE_DATA, @@ -1655,15 +1655,15 @@ // Everything should be gone. EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, - content::PermissionType::GEOLOCATION)); + CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(0, tester.GetIgnoreCount(kOrigin1, - content::PermissionType::NOTIFICATIONS)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); EXPECT_EQ(0, tester.GetDismissCount(kOrigin1, - content::PermissionType::MIDI_SYSEX)); + CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); EXPECT_EQ(0, tester.GetIgnoreCount( - kOrigin2, content::PermissionType::DURABLE_STORAGE)); + kOrigin2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); EXPECT_EQ(0, tester.GetDismissCount( - kOrigin2, content::PermissionType::NOTIFICATIONS)); + kOrigin2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); } }
diff --git a/chrome/browser/chromeos/attestation/platform_verification_flow.cc b/chrome/browser/chromeos/attestation/platform_verification_flow.cc index d13221b..17fb0c6 100644 --- a/chrome/browser/chromeos/attestation/platform_verification_flow.cc +++ b/chrome/browser/chromeos/attestation/platform_verification_flow.cc
@@ -27,10 +27,10 @@ #include "chromeos/dbus/dbus_thread_manager.h" #include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/content_settings/core/common/content_settings_pattern.h" +#include "components/content_settings/core/common/content_settings_types.h" #include "components/user_manager/user.h" #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_view_host.h" #include "content/public/browser/user_metrics.h" @@ -116,7 +116,7 @@ PermissionManager::Get( Profile::FromBrowserContext(web_contents->GetBrowserContext())) ->GetPermissionStatus( - content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, + CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, requesting_origin, embedding_origin); return status == blink::mojom::PermissionStatus::GRANTED;
diff --git a/chrome/browser/extensions/service_worker_apitest.cc b/chrome/browser/extensions/service_worker_apitest.cc index 6ca009a5..7615b12 100644 --- a/chrome/browser/extensions/service_worker_apitest.cc +++ b/chrome/browser/extensions/service_worker_apitest.cc
@@ -19,11 +19,11 @@ #include "chrome/browser/push_messaging/push_messaging_service_impl.h" #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/test/base/ui_test_utils.h" +#include "components/content_settings/core/common/content_settings_types.h" #include "components/gcm_driver/instance_id/fake_gcm_driver_for_instance_id.h" #include "components/version_info/version_info.h" #include "content/public/browser/navigation_controller.h" #include "content/public/browser/navigation_entry.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/service_worker_context.h" #include "content/public/browser/storage_partition.h" #include "content/public/browser/web_contents.h" @@ -225,7 +225,7 @@ DesktopNotificationProfileUtil::GrantPermission(profile(), origin); ASSERT_EQ(blink::mojom::PermissionStatus::GRANTED, PermissionManager::Get(profile())->GetPermissionStatus( - content::PermissionType::NOTIFICATIONS, origin, origin)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, origin, origin)); } PushMessagingAppIdentifier GetAppIdentifierForServiceWorkerRegistration(
diff --git a/chrome/browser/geolocation/geolocation_infobar_delegate_android.cc b/chrome/browser/geolocation/geolocation_infobar_delegate_android.cc index de62c5c..5fc4c43f 100644 --- a/chrome/browser/geolocation/geolocation_infobar_delegate_android.cc +++ b/chrome/browser/geolocation/geolocation_infobar_delegate_android.cc
@@ -13,7 +13,6 @@ Profile* profile, const PermissionSetCallback& callback) : PermissionInfoBarDelegate(requesting_frame, - content::PermissionType::GEOLOCATION, CONTENT_SETTINGS_TYPE_GEOLOCATION, user_gesture, profile,
diff --git a/chrome/browser/geolocation/geolocation_permission_context.cc b/chrome/browser/geolocation/geolocation_permission_context.cc index 38ab762b..0283b6c 100644 --- a/chrome/browser/geolocation/geolocation_permission_context.cc +++ b/chrome/browser/geolocation/geolocation_permission_context.cc
@@ -9,7 +9,6 @@ #include "chrome/browser/permissions/permission_request_id.h" #include "chrome/browser/profiles/profile.h" #include "content/public/browser/browser_thread.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" #include "device/geolocation/geolocation_provider.h" @@ -17,7 +16,6 @@ GeolocationPermissionContext::GeolocationPermissionContext(Profile* profile) : PermissionContextBase(profile, - content::PermissionType::GEOLOCATION, CONTENT_SETTINGS_TYPE_GEOLOCATION), extensions_context_(profile) {}
diff --git a/chrome/browser/geolocation/geolocation_permission_context_unittest.cc b/chrome/browser/geolocation/geolocation_permission_context_unittest.cc index 6385a45..d1af54d 100644 --- a/chrome/browser/geolocation/geolocation_permission_context_unittest.cc +++ b/chrome/browser/geolocation/geolocation_permission_context_unittest.cc
@@ -288,7 +288,7 @@ TabSpecificContentSettings::CreateForWebContents(web_contents()); geolocation_permission_context_ = static_cast<GeolocationPermissionContext*>( PermissionManager::Get(profile())->GetPermissionContext( - content::PermissionType::GEOLOCATION)); + CONTENT_SETTINGS_TYPE_GEOLOCATION)); #if defined(OS_ANDROID) static_cast<GeolocationPermissionContextAndroid*>( geolocation_permission_context_)
diff --git a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc index a1e8d93..8228d9a5 100644 --- a/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc +++ b/chrome/browser/guest_view/web_view/chrome_web_view_permission_helper_delegate.cc
@@ -11,7 +11,7 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/common/features.h" #include "chrome/common/render_messages.h" -#include "content/public/browser/permission_type.h" +#include "components/content_settings/core/common/content_settings_types.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/render_process_host.h" #include "content/public/browser/render_view_host.h" @@ -226,7 +226,7 @@ Profile* profile = Profile::FromBrowserContext( web_view_guest()->browser_context()); PermissionManager::Get(profile)->RequestPermission( - content::PermissionType::GEOLOCATION, web_contents->GetMainFrame(), + CONTENT_SETTINGS_TYPE_GEOLOCATION, web_contents->GetMainFrame(), web_view_guest() ->embedder_web_contents() ->GetLastCommittedURL()
diff --git a/chrome/browser/media/midi_permission_context.cc b/chrome/browser/media/midi_permission_context.cc index f4987df5..218f9b9 100644 --- a/chrome/browser/media/midi_permission_context.cc +++ b/chrome/browser/media/midi_permission_context.cc
@@ -7,12 +7,10 @@ #include "chrome/browser/content_settings/tab_specific_content_settings.h" #include "chrome/browser/permissions/permission_request_id.h" #include "content/public/browser/child_process_security_policy.h" -#include "content/public/browser/permission_type.h" #include "url/gurl.h" MidiPermissionContext::MidiPermissionContext(Profile* profile) : PermissionContextBase(profile, - content::PermissionType::MIDI_SYSEX, CONTENT_SETTINGS_TYPE_MIDI_SYSEX) {} MidiPermissionContext::~MidiPermissionContext() {
diff --git a/chrome/browser/media/midi_permission_infobar_delegate_android.cc b/chrome/browser/media/midi_permission_infobar_delegate_android.cc index bf9d3b04..bf33bd7 100644 --- a/chrome/browser/media/midi_permission_infobar_delegate_android.cc +++ b/chrome/browser/media/midi_permission_infobar_delegate_android.cc
@@ -13,7 +13,6 @@ Profile* profile, const PermissionSetCallback& callback) : PermissionInfoBarDelegate(requesting_frame, - content::PermissionType::MIDI_SYSEX, CONTENT_SETTINGS_TYPE_MIDI_SYSEX, user_gesture, profile,
diff --git a/chrome/browser/media/protected_media_identifier_infobar_delegate_android.cc b/chrome/browser/media/protected_media_identifier_infobar_delegate_android.cc index 0c98b81..6720d7a 100644 --- a/chrome/browser/media/protected_media_identifier_infobar_delegate_android.cc +++ b/chrome/browser/media/protected_media_identifier_infobar_delegate_android.cc
@@ -18,7 +18,6 @@ const PermissionSetCallback& callback) : PermissionInfoBarDelegate( requesting_frame, - content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, user_gesture, profile,
diff --git a/chrome/browser/media/protected_media_identifier_permission_context.cc b/chrome/browser/media/protected_media_identifier_permission_context.cc index ea8bd5c..1dbfcc9 100644 --- a/chrome/browser/media/protected_media_identifier_permission_context.cc +++ b/chrome/browser/media/protected_media_identifier_permission_context.cc
@@ -12,7 +12,6 @@ #include "chrome/common/pref_names.h" #include "components/prefs/pref_service.h" #include "content/public/browser/browser_thread.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/user_metrics.h" #include "content/public/browser/web_contents.h" @@ -37,7 +36,6 @@ ProtectedMediaIdentifierPermissionContext:: ProtectedMediaIdentifierPermissionContext(Profile* profile) : PermissionContextBase(profile, - content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER) #if defined(OS_CHROMEOS) ,
diff --git a/chrome/browser/media/webrtc/media_permission.cc b/chrome/browser/media/webrtc/media_permission.cc index d05a130..278f7ed 100644 --- a/chrome/browser/media/webrtc/media_permission.cc +++ b/chrome/browser/media/webrtc/media_permission.cc
@@ -11,25 +11,10 @@ #include "chrome/browser/profiles/profile.h" #include "chrome/common/pref_names.h" #include "content/public/browser/permission_manager.h" -#include "content/public/browser/permission_type.h" #include "content/public/common/url_constants.h" #include "extensions/common/constants.h" #include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h" -namespace { - -content::PermissionType ContentSettingsTypeToPermission( - ContentSettingsType content_setting) { - if (content_setting == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) { - return content::PermissionType::AUDIO_CAPTURE; - } else { - DCHECK_EQ(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, content_setting); - return content::PermissionType::VIDEO_CAPTURE; - } -} - -} // namespace - MediaPermission::MediaPermission(ContentSettingsType content_type, const GURL& requesting_origin, const GURL& embedding_origin, @@ -48,12 +33,10 @@ return CONTENT_SETTING_BLOCK; } - content::PermissionType permission_type = - ContentSettingsTypeToPermission(content_type_); PermissionManager* permission_manager = PermissionManager::Get(profile_); // Find out if the kill switch is on. Set the denial reason to kill switch. - if (permission_manager->IsPermissionKillSwitchOn(permission_type)) { + if (permission_manager->IsPermissionKillSwitchOn(content_type_)) { *denial_reason = content::MEDIA_DEVICE_KILL_SWITCH_ON; return CONTENT_SETTING_BLOCK; } @@ -61,7 +44,7 @@ // Check policy and content settings. blink::mojom::PermissionStatus status = permission_manager->GetPermissionStatus( - permission_type, requesting_origin_, embedding_origin_); + content_type_, requesting_origin_, embedding_origin_); switch (status) { case blink::mojom::PermissionStatus::DENIED: *denial_reason = content::MEDIA_DEVICE_PERMISSION_DENIED;
diff --git a/chrome/browser/media/webrtc/media_stream_device_permission_context.cc b/chrome/browser/media/webrtc/media_stream_device_permission_context.cc index 8220b34..2d34b90 100644 --- a/chrome/browser/media/webrtc/media_stream_device_permission_context.cc +++ b/chrome/browser/media/webrtc/media_stream_device_permission_context.cc
@@ -13,9 +13,8 @@ MediaStreamDevicePermissionContext::MediaStreamDevicePermissionContext( Profile* profile, - const content::PermissionType permission_type, const ContentSettingsType content_settings_type) - : PermissionContextBase(profile, permission_type, content_settings_type), + : PermissionContextBase(profile, content_settings_type), content_settings_type_(content_settings_type) { DCHECK(content_settings_type_ == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC || content_settings_type_ == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA);
diff --git a/chrome/browser/media/webrtc/media_stream_device_permission_context.h b/chrome/browser/media/webrtc/media_stream_device_permission_context.h index b9ccf177..274edcf1 100644 --- a/chrome/browser/media/webrtc/media_stream_device_permission_context.h +++ b/chrome/browser/media/webrtc/media_stream_device_permission_context.h
@@ -8,18 +8,12 @@ #include "base/macros.h" #include "chrome/browser/permissions/permission_context_base.h" #include "components/content_settings/core/common/content_settings_types.h" -#include "content/public/browser/permission_type.h" // Common class which handles the mic and camera permissions. -// MediaStreamMicPermissionContextFactory and -// MediaStreamCameraPermissionContextFactory will instantiate this with -// corresponding |permission_type|. class MediaStreamDevicePermissionContext : public PermissionContextBase { public: - MediaStreamDevicePermissionContext( - Profile* profile, - const content::PermissionType permission_type, - const ContentSettingsType content_settings_type); + MediaStreamDevicePermissionContext(Profile* profile, + ContentSettingsType content_settings_type); ~MediaStreamDevicePermissionContext() override; // PermissionContextBase:
diff --git a/chrome/browser/media/webrtc/media_stream_device_permission_context_unittest.cc b/chrome/browser/media/webrtc/media_stream_device_permission_context_unittest.cc index a373ba0..97a2d10 100644 --- a/chrome/browser/media/webrtc/media_stream_device_permission_context_unittest.cc +++ b/chrome/browser/media/webrtc/media_stream_device_permission_context_unittest.cc
@@ -15,7 +15,6 @@ #include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_types.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/web_contents.h" #include "content/public/test/mock_render_process_host.h" #include "content/public/test/web_contents_tester.h" @@ -29,13 +28,8 @@ class TestPermissionContext : public MediaStreamDevicePermissionContext { public: TestPermissionContext(Profile* profile, - const ContentSettingsType permission_type) - : MediaStreamDevicePermissionContext( - profile, - permission_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA - ? content::PermissionType::VIDEO_CAPTURE - : content::PermissionType::AUDIO_CAPTURE, - permission_type) {} + const ContentSettingsType content_settings_type) + : MediaStreamDevicePermissionContext(profile, content_settings_type) {} ~TestPermissionContext() override {} }; @@ -49,8 +43,8 @@ protected: MediaStreamDevicePermissionContextTests() = default; - void TestInsecureQueryingUrl(ContentSettingsType permission_type) { - TestPermissionContext permission_context(profile(), permission_type); + void TestInsecureQueryingUrl(ContentSettingsType content_settings_type) { + TestPermissionContext permission_context(profile(), content_settings_type); GURL insecure_url("http://www.example.com"); GURL secure_url("https://www.example.com"); @@ -59,20 +53,17 @@ HostContentSettingsMapFactory::GetForProfile(profile()) ->GetContentSetting(insecure_url.GetOrigin(), insecure_url.GetOrigin(), - permission_type, - std::string())); + content_settings_type, std::string())); EXPECT_EQ(CONTENT_SETTING_ASK, HostContentSettingsMapFactory::GetForProfile(profile()) ->GetContentSetting(secure_url.GetOrigin(), insecure_url.GetOrigin(), - permission_type, - std::string())); + content_settings_type, std::string())); EXPECT_EQ(CONTENT_SETTING_ASK, HostContentSettingsMapFactory::GetForProfile(profile()) ->GetContentSetting(insecure_url.GetOrigin(), secure_url.GetOrigin(), - permission_type, - std::string())); + content_settings_type, std::string())); EXPECT_EQ(CONTENT_SETTING_ASK, permission_context.GetPermissionStatus(insecure_url, insecure_url) @@ -83,8 +74,8 @@ .content_setting); } - void TestSecureQueryingUrl(ContentSettingsType permission_type) { - TestPermissionContext permission_context(profile(), permission_type); + void TestSecureQueryingUrl(ContentSettingsType content_settings_type) { + TestPermissionContext permission_context(profile(), content_settings_type); GURL secure_url("https://www.example.com"); // Check that there is no saved content settings. @@ -92,7 +83,7 @@ HostContentSettingsMapFactory::GetForProfile(profile()) ->GetContentSetting(secure_url.GetOrigin(), secure_url.GetOrigin(), - permission_type, + content_settings_type, std::string())); EXPECT_EQ(CONTENT_SETTING_ASK,
diff --git a/chrome/browser/media/webrtc/media_stream_devices_controller.cc b/chrome/browser/media/webrtc/media_stream_devices_controller.cc index 9a229456..ba1a834 100644 --- a/chrome/browser/media/webrtc/media_stream_devices_controller.cc +++ b/chrome/browser/media/webrtc/media_stream_devices_controller.cc
@@ -58,34 +58,34 @@ // Returns true if the given ContentSettingsType is being requested in // |request|. -bool ContentTypeIsRequested(content::PermissionType type, +bool ContentTypeIsRequested(ContentSettingsType type, const content::MediaStreamRequest& request) { if (request.request_type == content::MEDIA_OPEN_DEVICE_PEPPER_ONLY) return true; - if (type == content::PermissionType::AUDIO_CAPTURE) + if (type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC) return request.audio_type == content::MEDIA_DEVICE_AUDIO_CAPTURE; - if (type == content::PermissionType::VIDEO_CAPTURE) + if (type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA) return request.video_type == content::MEDIA_DEVICE_VIDEO_CAPTURE; return false; } using PermissionActionCallback = - base::Callback<void(content::PermissionType, + base::Callback<void(ContentSettingsType, PermissionRequestGestureType, const GURL&, Profile*)>; void RecordSinglePermissionAction(const content::MediaStreamRequest& request, - content::PermissionType permission_type, + ContentSettingsType content_type, Profile* profile, PermissionActionCallback callback) { - if (ContentTypeIsRequested(permission_type, request)) { + if (ContentTypeIsRequested(content_type, request)) { // TODO(stefanocs): Pass the actual |gesture_type| once this file has been // refactored into PermissionContext. - callback.Run(permission_type, PermissionRequestGestureType::UNKNOWN, + callback.Run(content_type, PermissionRequestGestureType::UNKNOWN, request.security_origin, profile); } } @@ -94,10 +94,10 @@ void RecordPermissionAction(const content::MediaStreamRequest& request, Profile* profile, PermissionActionCallback callback) { - RecordSinglePermissionAction(request, content::PermissionType::AUDIO_CAPTURE, + RecordSinglePermissionAction(request, CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, profile, callback); - RecordSinglePermissionAction(request, content::PermissionType::VIDEO_CAPTURE, - profile, callback); + RecordSinglePermissionAction( + request, CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, profile, callback); } // This helper class helps to measure the number of media stream requests that @@ -256,16 +256,6 @@ GetOrigin(), url_formatter::SchemeDisplay::OMIT_CRYPTOGRAPHIC)); } -content::PermissionType -MediaStreamDevicesController::GetPermissionTypeForContentSettingsType( - ContentSettingsType content_type) const { - DCHECK(content_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC || - content_type == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); - content::PermissionType permission = content::PermissionType::NUM; - CHECK(PermissionUtil::GetPermissionType(content_type, &permission)); - return permission; -} - void MediaStreamDevicesController::ForcePermissionDeniedTemporarily() { set_persist(false); // TODO(tsergeant): Determine whether it is appropriate to record permission @@ -567,9 +557,7 @@ return CONTENT_SETTING_BLOCK; } - content::PermissionType permission_type = - GetPermissionTypeForContentSettingsType(content_type); - if (ContentTypeIsRequested(permission_type, request)) { + if (ContentTypeIsRequested(content_type, request)) { DCHECK(content::IsOriginSecure(request_.security_origin) || request_.request_type == content::MEDIA_OPEN_DEVICE_PEPPER_ONLY); MediaPermission permission(content_type, request.security_origin,
diff --git a/chrome/browser/media/webrtc/media_stream_devices_controller.h b/chrome/browser/media/webrtc/media_stream_devices_controller.h index 45170221..8f005031 100644 --- a/chrome/browser/media/webrtc/media_stream_devices_controller.h +++ b/chrome/browser/media/webrtc/media_stream_devices_controller.h
@@ -11,7 +11,6 @@ #include "base/macros.h" #include "chrome/browser/permissions/permission_request.h" #include "components/content_settings/core/common/content_settings.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/web_contents_delegate.h" class Profile; @@ -42,11 +41,6 @@ bool IsAskingForVideo() const; base::string16 GetMessageText() const; - // Returns the PermissionsType associated with the provided - // ContentSettingsType. |content_type| must be a media stream type. - content::PermissionType GetPermissionTypeForContentSettingsType( - ContentSettingsType content_type) const; - // Forces the permissions to be denied (without being persisted) regardless // of what the previous state was. If the user had previously allowed the // site video or audio access, this ignores that and informs the site it was
diff --git a/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc b/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc index cc56614..4e21927b 100644 --- a/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc +++ b/chrome/browser/media/webrtc/media_stream_devices_controller_browsertest.cc
@@ -709,10 +709,10 @@ RequestAndKillSwitchMicCam) { std::map<std::string, std::string> params; params[PermissionUtil::GetPermissionString( - content::PermissionType::AUDIO_CAPTURE)] = + CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC)] = PermissionContextBase::kPermissionsKillSwitchBlockedValue; params[PermissionUtil::GetPermissionString( - content::PermissionType::VIDEO_CAPTURE)] = + CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA)] = PermissionContextBase::kPermissionsKillSwitchBlockedValue; variations::AssociateVariationParams( PermissionContextBase::kPermissionsKillSwitchFieldStudy,
diff --git a/chrome/browser/media/webrtc/media_stream_infobar_delegate_android.cc b/chrome/browser/media/webrtc/media_stream_infobar_delegate_android.cc index 8ea9dc74..075e247b 100644 --- a/chrome/browser/media/webrtc/media_stream_infobar_delegate_android.cc +++ b/chrome/browser/media/webrtc/media_stream_infobar_delegate_android.cc
@@ -88,7 +88,6 @@ // refactoring. // TODO(lshang): Merge MediaStreamInfoBarDelegateAndroid into // GroupedPermissionInfoBarDelegate. See crbug.com/606138. - content::PermissionType::AUDIO_CAPTURE, CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, user_gesture, profile, @@ -152,11 +151,11 @@ if (controller_->IsAskingForAudio()) { PermissionUmaUtil::PermissionPromptAcceptedWithPersistenceToggle( - content::PermissionType::AUDIO_CAPTURE, persist_permission); + CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, persist_permission); } if (controller_->IsAskingForVideo()) { PermissionUmaUtil::PermissionPromptAcceptedWithPersistenceToggle( - content::PermissionType::VIDEO_CAPTURE, persist_permission); + CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, persist_permission); } } @@ -178,11 +177,11 @@ if (controller_->IsAskingForAudio()) { PermissionUmaUtil::PermissionPromptDeniedWithPersistenceToggle( - content::PermissionType::AUDIO_CAPTURE, persist_permission); + CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC, persist_permission); } if (controller_->IsAskingForVideo()) { PermissionUmaUtil::PermissionPromptDeniedWithPersistenceToggle( - content::PermissionType::VIDEO_CAPTURE, persist_permission); + CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA, persist_permission); } } controller_->set_persist(persist_permission);
diff --git a/chrome/browser/notifications/message_center_settings_controller_unittest.cc b/chrome/browser/notifications/message_center_settings_controller_unittest.cc index d33945a..5f663a0 100644 --- a/chrome/browser/notifications/message_center_settings_controller_unittest.cc +++ b/chrome/browser/notifications/message_center_settings_controller_unittest.cc
@@ -18,7 +18,7 @@ #include "chrome/test/base/testing_browser_process.h" #include "chrome/test/base/testing_profile_manager.h" #include "components/content_settings/core/browser/host_content_settings_map.h" -#include "content/public/browser/permission_type.h" +#include "components/content_settings/core/common/content_settings_types.h" #include "content/public/test/test_browser_thread_bundle.h" #include "extensions/common/extension.h" #include "extensions/common/extension_builder.h" @@ -317,13 +317,13 @@ controller()->SetNotifierEnabled(disabled_notifier, true); EXPECT_EQ(blink::mojom::PermissionStatus::GRANTED, permission_manager->GetPermissionStatus( - content::PermissionType::NOTIFICATIONS, origin, origin)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, origin, origin)); // (2) Disable the permission when the default is to ask (expected to clear). controller()->SetNotifierEnabled(enabled_notifier, false); EXPECT_EQ(blink::mojom::PermissionStatus::ASK, permission_manager->GetPermissionStatus( - content::PermissionType::NOTIFICATIONS, origin, origin)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, origin, origin)); // Change the default content setting vaule for notifications to ALLOW. HostContentSettingsMapFactory::GetForProfile(profile) @@ -334,13 +334,13 @@ controller()->SetNotifierEnabled(enabled_notifier, false); EXPECT_EQ(blink::mojom::PermissionStatus::DENIED, permission_manager->GetPermissionStatus( - content::PermissionType::NOTIFICATIONS, origin, origin)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, origin, origin)); // (4) Enable the permission when the default is allowed (expected to clear). controller()->SetNotifierEnabled(disabled_notifier, true); EXPECT_EQ(blink::mojom::PermissionStatus::GRANTED, permission_manager->GetPermissionStatus( - content::PermissionType::NOTIFICATIONS, origin, origin)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, origin, origin)); // Now change the default content setting value to BLOCK. HostContentSettingsMapFactory::GetForProfile(profile) @@ -351,11 +351,11 @@ controller()->SetNotifierEnabled(disabled_notifier, true); EXPECT_EQ(blink::mojom::PermissionStatus::GRANTED, permission_manager->GetPermissionStatus( - content::PermissionType::NOTIFICATIONS, origin, origin)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, origin, origin)); // (6) Disable the permission when the default is blocked (expected to clear). controller()->SetNotifierEnabled(enabled_notifier, false); EXPECT_EQ(blink::mojom::PermissionStatus::DENIED, permission_manager->GetPermissionStatus( - content::PermissionType::NOTIFICATIONS, origin, origin)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, origin, origin)); }
diff --git a/chrome/browser/notifications/notification_permission_context.cc b/chrome/browser/notifications/notification_permission_context.cc index 88a0263..656c1b31 100644 --- a/chrome/browser/notifications/notification_permission_context.cc +++ b/chrome/browser/notifications/notification_permission_context.cc
@@ -17,8 +17,8 @@ #include "chrome/browser/permissions/permission_request_id.h" #include "chrome/browser/profiles/profile.h" #include "components/content_settings/core/common/content_settings_pattern.h" +#include "components/content_settings/core/common/content_settings_types.h" #include "content/public/browser/browser_thread.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents_observer.h" #include "content/public/browser/web_contents_user_data.h" @@ -161,13 +161,11 @@ NotificationPermissionContext::NotificationPermissionContext( Profile* profile, - content::PermissionType permission_type) - : PermissionContextBase(profile, - permission_type, - CONTENT_SETTINGS_TYPE_NOTIFICATIONS), + ContentSettingsType content_settings_type) + : PermissionContextBase(profile, content_settings_type), weak_factory_ui_thread_(this) { - DCHECK(permission_type == content::PermissionType::NOTIFICATIONS || - permission_type == content::PermissionType::PUSH_MESSAGING); + DCHECK(content_settings_type == CONTENT_SETTINGS_TYPE_NOTIFICATIONS || + content_settings_type == CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); } NotificationPermissionContext::~NotificationPermissionContext() {} @@ -176,8 +174,8 @@ const GURL& requesting_origin, const GURL& embedding_origin) const { // Push messaging is only allowed to be granted on top-level origins. - if (permission_type() == content::PermissionType::PUSH_MESSAGING && - requesting_origin != embedding_origin) { + if (content_settings_type() == CONTENT_SETTINGS_TYPE_PUSH_MESSAGING + && requesting_origin != embedding_origin) { return CONTENT_SETTING_BLOCK; } @@ -259,5 +257,5 @@ } bool NotificationPermissionContext::IsRestrictedToSecureOrigins() const { - return permission_type() == content::PermissionType::PUSH_MESSAGING; + return content_settings_type() == CONTENT_SETTINGS_TYPE_PUSH_MESSAGING; }
diff --git a/chrome/browser/notifications/notification_permission_context.h b/chrome/browser/notifications/notification_permission_context.h index c9ab989..ea9f736 100644 --- a/chrome/browser/notifications/notification_permission_context.h +++ b/chrome/browser/notifications/notification_permission_context.h
@@ -14,8 +14,7 @@ class NotificationPermissionContext : public PermissionContextBase { public: - NotificationPermissionContext(Profile* profile, - content::PermissionType permission_type); + NotificationPermissionContext(Profile* profile, ContentSettingsType); ~NotificationPermissionContext() override; // PermissionContextBase implementation.
diff --git a/chrome/browser/notifications/notification_permission_context_unittest.cc b/chrome/browser/notifications/notification_permission_context_unittest.cc index b16aa9e..3c7f38b 100644 --- a/chrome/browser/notifications/notification_permission_context_unittest.cc +++ b/chrome/browser/notifications/notification_permission_context_unittest.cc
@@ -28,13 +28,13 @@ namespace { void DoNothing(ContentSetting content_setting) {} -void DoNothing2(blink::mojom::PermissionStatus status) {} +void DoNothing2(blink::mojom::PermissionStatus content_setting) {} class TestNotificationPermissionContext : public NotificationPermissionContext { public: explicit TestNotificationPermissionContext(Profile* profile) : NotificationPermissionContext(profile, - content::PermissionType::NOTIFICATIONS), + CONTENT_SETTINGS_TYPE_NOTIFICATIONS), permission_set_count_(0), last_permission_set_persisted_(false), last_permission_set_setting_(CONTENT_SETTING_DEFAULT) {} @@ -113,7 +113,7 @@ GURL different_origin("https://foobar.com"); NotificationPermissionContext context(profile(), - content::PermissionType::NOTIFICATIONS); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS); UpdateContentSetting(&context, requesting_origin, embedding_origin, CONTENT_SETTING_ALLOW); @@ -142,8 +142,8 @@ GURL requesting_origin("https://example.com"); GURL embedding_origin("https://chrome.com"); - NotificationPermissionContext context( - profile(), content::PermissionType::PUSH_MESSAGING); + NotificationPermissionContext context(profile(), + CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); UpdateContentSetting(&context, requesting_origin, embedding_origin, CONTENT_SETTING_ALLOW); @@ -173,7 +173,7 @@ GURL origin("http://example.com"); NotificationPermissionContext context(profile(), - content::PermissionType::NOTIFICATIONS); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS); EXPECT_EQ(CONTENT_SETTING_ASK, context.GetPermissionStatus(origin, origin).content_setting); @@ -189,7 +189,7 @@ GURL secure_origin("https://example.com"); NotificationPermissionContext context( - profile(), content::PermissionType::PUSH_MESSAGING); + profile(), CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); EXPECT_EQ(CONTENT_SETTING_BLOCK, context.GetPermissionStatus(origin, origin).content_setting); @@ -289,7 +289,7 @@ base::TestMockTimeTaskRunner* task_runner = SwitchToMockTime(); - content::PermissionManager* permission_manager = + PermissionManager* permission_manager = PermissionManagerFactory::GetForProfile( profile()->GetOffTheRecordProfile()); @@ -297,7 +297,7 @@ // https://crbug.com/586944 regresses, then as well as the EXPECT_EQs below // failing, PermissionManager::OnPermissionsRequestResponseStatus will crash. int request_id = permission_manager->RequestPermission( - content::PermissionType::NOTIFICATIONS, web_contents()->GetMainFrame(), + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, web_contents()->GetMainFrame(), url.GetOrigin(), true /* user_gesture */, base::Bind(&DoNothing2)); permission_manager->CancelPermissionRequest(request_id);
diff --git a/chrome/browser/notifications/notification_permission_infobar_delegate.cc b/chrome/browser/notifications/notification_permission_infobar_delegate.cc index 13925992..c41486e 100644 --- a/chrome/browser/notifications/notification_permission_infobar_delegate.cc +++ b/chrome/browser/notifications/notification_permission_infobar_delegate.cc
@@ -8,19 +8,18 @@ #include "chrome/grit/generated_resources.h" NotificationPermissionInfoBarDelegate::NotificationPermissionInfoBarDelegate( - const content::PermissionType& permission_type, + ContentSettingsType type, const GURL& requesting_frame, bool user_gesture, Profile* profile, const PermissionSetCallback& callback) : PermissionInfoBarDelegate(requesting_frame, - permission_type, - CONTENT_SETTINGS_TYPE_NOTIFICATIONS, + type, user_gesture, profile, callback) { - DCHECK(permission_type == content::PermissionType::NOTIFICATIONS || - permission_type == content::PermissionType::PUSH_MESSAGING); + DCHECK(type == CONTENT_SETTINGS_TYPE_NOTIFICATIONS || + type == CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); } NotificationPermissionInfoBarDelegate::~NotificationPermissionInfoBarDelegate()
diff --git a/chrome/browser/notifications/notification_permission_infobar_delegate.h b/chrome/browser/notifications/notification_permission_infobar_delegate.h index b9e4931..6765722 100644 --- a/chrome/browser/notifications/notification_permission_infobar_delegate.h +++ b/chrome/browser/notifications/notification_permission_infobar_delegate.h
@@ -10,14 +10,10 @@ #include "base/macros.h" #include "chrome/browser/permissions/permission_infobar_delegate.h" -namespace content { -enum class PermissionType; -} - class NotificationPermissionInfoBarDelegate : public PermissionInfoBarDelegate { public: NotificationPermissionInfoBarDelegate( - const content::PermissionType& permission_type, + ContentSettingsType type, const GURL& requesting_frame, bool user_gesture, Profile* profile,
diff --git a/chrome/browser/notifications/notifier_state_tracker.cc b/chrome/browser/notifications/notifier_state_tracker.cc index 9e3180d1..2f0ecc5 100644 --- a/chrome/browser/notifications/notifier_state_tracker.cc +++ b/chrome/browser/notifications/notifier_state_tracker.cc
@@ -14,9 +14,9 @@ #include "chrome/browser/permissions/permission_manager.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/pref_names.h" +#include "components/content_settings/core/common/content_settings_types.h" #include "components/pref_registry/pref_registry_syncable.h" #include "components/prefs/scoped_user_pref_update.h" -#include "content/public/browser/permission_type.h" #include "extensions/features/features.h" #include "ui/message_center/notifier_settings.h" @@ -87,7 +87,7 @@ disabled_extension_ids_.end(); case NotifierId::WEB_PAGE: return PermissionManager::Get(profile_)->GetPermissionStatus( - content::PermissionType::NOTIFICATIONS, notifier_id.url, + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, notifier_id.url, notifier_id.url) == blink::mojom::PermissionStatus::GRANTED; case NotifierId::SYSTEM_COMPONENT: #if defined(OS_CHROMEOS)
diff --git a/chrome/browser/notifications/platform_notification_service_impl.cc b/chrome/browser/notifications/platform_notification_service_impl.cc index a03b72c..10c6a546 100644 --- a/chrome/browser/notifications/platform_notification_service_impl.cc +++ b/chrome/browser/notifications/platform_notification_service_impl.cc
@@ -33,7 +33,6 @@ #include "content/public/browser/browser_thread.h" #include "content/public/browser/desktop_notification_delegate.h" #include "content/public/browser/notification_event_dispatcher.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/user_metrics.h" #include "content/public/common/notification_resources.h" #include "content/public/common/platform_notification_data.h" @@ -229,7 +228,7 @@ #endif return PermissionManager::Get(profile)->GetPermissionStatus( - content::PermissionType::NOTIFICATIONS, origin, origin); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, origin, origin); } blink::mojom::PermissionStatus
diff --git a/chrome/browser/notifications/platform_notification_service_interactive_uitest.cc b/chrome/browser/notifications/platform_notification_service_interactive_uitest.cc index 88f3984..f99ba22 100644 --- a/chrome/browser/notifications/platform_notification_service_interactive_uitest.cc +++ b/chrome/browser/notifications/platform_notification_service_interactive_uitest.cc
@@ -31,7 +31,7 @@ #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/interactive_test_utils.h" #include "chrome/test/base/ui_test_utils.h" -#include "content/public/browser/permission_type.h" +#include "components/content_settings/core/common/content_settings_types.h" #include "content/public/common/content_features.h" #include "content/public/common/content_switches.h" #include "content/public/test/browser_test_utils.h" @@ -164,7 +164,7 @@ DesktopNotificationProfileUtil::GrantPermission(browser()->profile(), origin); ASSERT_EQ(blink::mojom::PermissionStatus::GRANTED, PermissionManager::Get(browser()->profile()) - ->GetPermissionStatus(content::PermissionType::NOTIFICATIONS, + ->GetPermissionStatus(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, origin, origin)); } @@ -471,13 +471,13 @@ EXPECT_EQ(blink::mojom::PermissionStatus::ASK, permission_manager->GetPermissionStatus( - content::PermissionType::NOTIFICATIONS, TestPageUrl(), + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, TestPageUrl(), TestPageUrl())); RequestAndAcceptPermission(); EXPECT_EQ(blink::mojom::PermissionStatus::GRANTED, permission_manager->GetPermissionStatus( - content::PermissionType::NOTIFICATIONS, TestPageUrl(), + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, TestPageUrl(), TestPageUrl())); // This case should fail because a file URL is used. @@ -491,12 +491,12 @@ EXPECT_EQ(blink::mojom::PermissionStatus::ASK, permission_manager->GetPermissionStatus( - content::PermissionType::NOTIFICATIONS, file_url, file_url)); + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, file_url, file_url)); RequestAndAcceptPermission(); EXPECT_EQ(blink::mojom::PermissionStatus::ASK, permission_manager->GetPermissionStatus( - content::PermissionType::NOTIFICATIONS, file_url, file_url)) + CONTENT_SETTINGS_TYPE_NOTIFICATIONS, file_url, file_url)) << "If this test fails, you may have fixed a bug preventing file origins " << "from sending their origin from Blink; if so you need to update the " << "display function for notification origins to show the file path.";
diff --git a/chrome/browser/permissions/delegation_tracker.cc b/chrome/browser/permissions/delegation_tracker.cc index 759473b..9b1183d 100644 --- a/chrome/browser/permissions/delegation_tracker.cc +++ b/chrome/browser/permissions/delegation_tracker.cc
@@ -9,7 +9,6 @@ #include "base/memory/ptr_util.h" #include "chrome/browser/permissions/permission_util.h" #include "content/public/browser/navigation_handle.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" #include "content/public/browser/web_contents_observer.h" @@ -17,7 +16,7 @@ class DelegationTracker::DelegatedForChild : content::WebContentsObserver { public: DelegatedForChild(content::RenderFrameHost* child_rfh, - const std::vector<content::PermissionType>& permissions, + const std::vector<ContentSettingsType>& permissions, const base::Callback<void(content::RenderFrameHost*)>& rfh_destroyed_callback) : content::WebContentsObserver( @@ -28,7 +27,7 @@ ~DelegatedForChild() override {} - bool HasPermission(const content::PermissionType& permission) { + bool HasPermission(ContentSettingsType permission) { return permissions_.count(permission) == 1; } @@ -58,7 +57,7 @@ content::RenderFrameHost* child_rfh_; - std::unordered_set<content::PermissionType, PermissionTypeHash> permissions_; + std::unordered_set<ContentSettingsType, ContentSettingsTypeHash> permissions_; base::Callback<void(content::RenderFrameHost*)> rfh_destroyed_callback_; }; @@ -69,7 +68,7 @@ void DelegationTracker::SetDelegatedPermissions( content::RenderFrameHost* child_rfh, - const std::vector<content::PermissionType>& permissions) { + const std::vector<ContentSettingsType>& permissions) { DCHECK(child_rfh && child_rfh->GetParent()); delegated_permissions_[child_rfh] = base::MakeUnique<DelegatedForChild>( child_rfh, permissions, @@ -78,7 +77,7 @@ } bool DelegationTracker::IsGranted(content::RenderFrameHost* requesting_rfh, - const content::PermissionType& permission) { + ContentSettingsType permission) { content::RenderFrameHost* child_rfh = requesting_rfh; while (child_rfh->GetParent()) { // Parents with unique origins can't delegate permission.
diff --git a/chrome/browser/permissions/delegation_tracker.h b/chrome/browser/permissions/delegation_tracker.h index 0f3811d..68c1e79 100644 --- a/chrome/browser/permissions/delegation_tracker.h +++ b/chrome/browser/permissions/delegation_tracker.h
@@ -10,11 +10,11 @@ #include <vector> #include "base/macros.h" +#include "components/content_settings/core/common/content_settings_types.h" namespace content { class RenderFrameHost; -enum class PermissionType; } // namespace content @@ -33,7 +33,7 @@ // Set the |permissions| which are delegated to |child_rfh| by its parent. void SetDelegatedPermissions( content::RenderFrameHost* child_rfh, - const std::vector<content::PermissionType>& permissions); + const std::vector<ContentSettingsType>& permissions); // Query whether |permission| is granted to |requesting_rfh|. This will return // true if |requesting_rfh| is a top-level frame or if it has been delegated @@ -42,7 +42,7 @@ // |permission| to it's child OR have the same origin as it's child on that // path in order for this to return true. bool IsGranted(content::RenderFrameHost* requesting_rfh, - const content::PermissionType& permission); + ContentSettingsType permission); private: class DelegatedForChild;
diff --git a/chrome/browser/permissions/delegation_tracker_unittest.cc b/chrome/browser/permissions/delegation_tracker_unittest.cc index 68cc4134..f00bb14 100644 --- a/chrome/browser/permissions/delegation_tracker_unittest.cc +++ b/chrome/browser/permissions/delegation_tracker_unittest.cc
@@ -5,15 +5,12 @@ #include "chrome/browser/permissions/delegation_tracker.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" #include "content/public/test/test_renderer_host.h" #include "testing/gtest/include/gtest/gtest.h" #include "url/gurl.h" -using content::PermissionType; - const char* kOrigin1 = "https://google.com"; const char* kOrigin2 = "https://maps.google.com"; const char* kOrigin3 = "https://example.com"; @@ -46,7 +43,7 @@ DelegationTracker tracker; content::RenderFrameHost* parent = GetMainRFH(kOrigin1); - EXPECT_TRUE(tracker.IsGranted(parent, PermissionType::GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(parent, CONTENT_SETTINGS_TYPE_GEOLOCATION)); } TEST_F(DelegationTrackerTest, SingleAncestorSameOrigin) { @@ -54,8 +51,8 @@ content::RenderFrameHost* parent = GetMainRFH(kOrigin1); content::RenderFrameHost* child = AddChildRFH(parent, kOrigin1); - EXPECT_TRUE(tracker.IsGranted(parent, PermissionType::GEOLOCATION)); - EXPECT_TRUE(tracker.IsGranted(child, PermissionType::GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(parent, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(child, CONTENT_SETTINGS_TYPE_GEOLOCATION)); } TEST_F(DelegationTrackerTest, SingleAncestorNoDelegation) { @@ -63,8 +60,8 @@ content::RenderFrameHost* parent = GetMainRFH(kOrigin1); content::RenderFrameHost* child = AddChildRFH(parent, kOrigin2); - EXPECT_TRUE(tracker.IsGranted(parent, PermissionType::GEOLOCATION)); - EXPECT_FALSE(tracker.IsGranted(child, PermissionType::GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(parent, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(child, CONTENT_SETTINGS_TYPE_GEOLOCATION)); } TEST_F(DelegationTrackerTest, SingleAncestorPermissionDelegated) { @@ -72,11 +69,11 @@ content::RenderFrameHost* parent = GetMainRFH(kOrigin1); content::RenderFrameHost* child = AddChildRFH(parent, kOrigin2); - tracker.SetDelegatedPermissions(child, {PermissionType::GEOLOCATION}); + tracker.SetDelegatedPermissions(child, {CONTENT_SETTINGS_TYPE_GEOLOCATION}); - EXPECT_TRUE(tracker.IsGranted(parent, PermissionType::GEOLOCATION)); - EXPECT_TRUE(tracker.IsGranted(child, PermissionType::GEOLOCATION)); - EXPECT_FALSE(tracker.IsGranted(child, PermissionType::NOTIFICATIONS)); + EXPECT_TRUE(tracker.IsGranted(parent, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(child, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(child, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); } TEST_F(DelegationTrackerTest, SingleAncestorMultiplePermissionsDelegated) { @@ -84,11 +81,11 @@ content::RenderFrameHost* parent = GetMainRFH(kOrigin1); content::RenderFrameHost* child = AddChildRFH(parent, kOrigin2); - tracker.SetDelegatedPermissions( - child, {PermissionType::GEOLOCATION, PermissionType::NOTIFICATIONS}); + tracker.SetDelegatedPermissions(child, {CONTENT_SETTINGS_TYPE_GEOLOCATION, + CONTENT_SETTINGS_TYPE_NOTIFICATIONS}); - EXPECT_TRUE(tracker.IsGranted(child, PermissionType::GEOLOCATION)); - EXPECT_TRUE(tracker.IsGranted(child, PermissionType::NOTIFICATIONS)); + EXPECT_TRUE(tracker.IsGranted(child, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(child, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); } TEST_F(DelegationTrackerTest, SingleAncestorMultipleChildren) { @@ -97,10 +94,10 @@ content::RenderFrameHost* child1 = AddChildRFH(parent, kOrigin2); content::RenderFrameHost* child2 = AddChildRFH(parent, kOrigin2); - tracker.SetDelegatedPermissions(child1, {PermissionType::GEOLOCATION}); + tracker.SetDelegatedPermissions(child1, {CONTENT_SETTINGS_TYPE_GEOLOCATION}); - EXPECT_TRUE(tracker.IsGranted(child1, PermissionType::GEOLOCATION)); - EXPECT_FALSE(tracker.IsGranted(child2, PermissionType::GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(child1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(child2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); } TEST_F(DelegationTrackerTest, MultipleAncestorsNotDelegated) { @@ -110,11 +107,11 @@ content::RenderFrameHost* child1 = AddChildRFH(parent, kOrigin3); content::RenderFrameHost* child2 = AddChildRFH(parent, kOrigin3); - tracker.SetDelegatedPermissions(child1, {PermissionType::GEOLOCATION}); + tracker.SetDelegatedPermissions(child1, {CONTENT_SETTINGS_TYPE_GEOLOCATION}); - EXPECT_FALSE(tracker.IsGranted(parent, PermissionType::GEOLOCATION)); - EXPECT_FALSE(tracker.IsGranted(child1, PermissionType::GEOLOCATION)); - EXPECT_FALSE(tracker.IsGranted(child2, PermissionType::GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(parent, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(child1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(child2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); } TEST_F(DelegationTrackerTest, MultipleAncestorsDelegated) { @@ -124,12 +121,12 @@ content::RenderFrameHost* child1 = AddChildRFH(parent, kOrigin3); content::RenderFrameHost* child2 = AddChildRFH(parent, kOrigin3); - tracker.SetDelegatedPermissions(parent, {PermissionType::GEOLOCATION}); - tracker.SetDelegatedPermissions(child1, {PermissionType::GEOLOCATION}); + tracker.SetDelegatedPermissions(parent, {CONTENT_SETTINGS_TYPE_GEOLOCATION}); + tracker.SetDelegatedPermissions(child1, {CONTENT_SETTINGS_TYPE_GEOLOCATION}); - EXPECT_TRUE(tracker.IsGranted(parent, PermissionType::GEOLOCATION)); - EXPECT_TRUE(tracker.IsGranted(child1, PermissionType::GEOLOCATION)); - EXPECT_FALSE(tracker.IsGranted(child2, PermissionType::GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(parent, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(child1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(child2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); } TEST_F(DelegationTrackerTest, MultipleAncestorsSameOrigin) { @@ -139,12 +136,12 @@ content::RenderFrameHost* child1 = AddChildRFH(parent, kOrigin1); content::RenderFrameHost* child2 = AddChildRFH(parent, kOrigin1); - tracker.SetDelegatedPermissions(parent, {PermissionType::GEOLOCATION}); - tracker.SetDelegatedPermissions(child1, {PermissionType::GEOLOCATION}); + tracker.SetDelegatedPermissions(parent, {CONTENT_SETTINGS_TYPE_GEOLOCATION}); + tracker.SetDelegatedPermissions(child1, {CONTENT_SETTINGS_TYPE_GEOLOCATION}); - EXPECT_TRUE(tracker.IsGranted(parent, PermissionType::GEOLOCATION)); - EXPECT_TRUE(tracker.IsGranted(child1, PermissionType::GEOLOCATION)); - EXPECT_TRUE(tracker.IsGranted(child2, PermissionType::GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(parent, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(child1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(child2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); } TEST_F(DelegationTrackerTest, MultipleAncestorsComplexSinglePermission) { @@ -156,13 +153,15 @@ content::RenderFrameHost* parent2 = AddChildRFH(grandparent, kOrigin3); content::RenderFrameHost* child = AddChildRFH(parent1, kOrigin3); - tracker.SetDelegatedPermissions(grandparent, {PermissionType::GEOLOCATION}); - tracker.SetDelegatedPermissions(child, {PermissionType::GEOLOCATION}); + tracker.SetDelegatedPermissions(grandparent, + {CONTENT_SETTINGS_TYPE_GEOLOCATION}); + tracker.SetDelegatedPermissions(child, {CONTENT_SETTINGS_TYPE_GEOLOCATION}); - EXPECT_TRUE(tracker.IsGranted(grandparent, PermissionType::GEOLOCATION)); - EXPECT_TRUE(tracker.IsGranted(parent1, PermissionType::GEOLOCATION)); - EXPECT_FALSE(tracker.IsGranted(parent2, PermissionType::GEOLOCATION)); - EXPECT_TRUE(tracker.IsGranted(child, PermissionType::GEOLOCATION)); + EXPECT_TRUE( + tracker.IsGranted(grandparent, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(parent1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(parent2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(child, CONTENT_SETTINGS_TYPE_GEOLOCATION)); } TEST_F(DelegationTrackerTest, MultipleAncestorsComplexMultiplePermissions) { @@ -174,21 +173,24 @@ content::RenderFrameHost* parent2 = AddChildRFH(grandparent, kOrigin3); content::RenderFrameHost* child = AddChildRFH(parent1, kOrigin3); - tracker.SetDelegatedPermissions(grandparent, {PermissionType::GEOLOCATION, - PermissionType::NOTIFICATIONS}); - tracker.SetDelegatedPermissions(child, {PermissionType::GEOLOCATION}); + tracker.SetDelegatedPermissions( + grandparent, + {CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTINGS_TYPE_NOTIFICATIONS}); + tracker.SetDelegatedPermissions(child, {CONTENT_SETTINGS_TYPE_GEOLOCATION}); - EXPECT_TRUE(tracker.IsGranted(grandparent, PermissionType::GEOLOCATION)); - EXPECT_TRUE(tracker.IsGranted(grandparent, PermissionType::NOTIFICATIONS)); + EXPECT_TRUE( + tracker.IsGranted(grandparent, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_TRUE( + tracker.IsGranted(grandparent, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); - EXPECT_TRUE(tracker.IsGranted(parent1, PermissionType::GEOLOCATION)); - EXPECT_TRUE(tracker.IsGranted(parent1, PermissionType::NOTIFICATIONS)); + EXPECT_TRUE(tracker.IsGranted(parent1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(parent1, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); - EXPECT_FALSE(tracker.IsGranted(parent2, PermissionType::GEOLOCATION)); - EXPECT_FALSE(tracker.IsGranted(parent2, PermissionType::NOTIFICATIONS)); + EXPECT_FALSE(tracker.IsGranted(parent2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(parent2, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); - EXPECT_TRUE(tracker.IsGranted(child, PermissionType::GEOLOCATION)); - EXPECT_FALSE(tracker.IsGranted(child, PermissionType::NOTIFICATIONS)); + EXPECT_TRUE(tracker.IsGranted(child, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(child, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); } TEST_F(DelegationTrackerTest, RenderFrameHostChanged) { @@ -197,17 +199,17 @@ content::RenderFrameHost* parent = AddChildRFH(grandparent, kOrigin2); content::RenderFrameHost* child = AddChildRFH(parent, kOrigin3); - tracker.SetDelegatedPermissions(parent, {PermissionType::GEOLOCATION}); - tracker.SetDelegatedPermissions(child, {PermissionType::GEOLOCATION}); + tracker.SetDelegatedPermissions(parent, {CONTENT_SETTINGS_TYPE_GEOLOCATION}); + tracker.SetDelegatedPermissions(child, {CONTENT_SETTINGS_TYPE_GEOLOCATION}); - EXPECT_TRUE(tracker.IsGranted(parent, PermissionType::GEOLOCATION)); - EXPECT_TRUE(tracker.IsGranted(child, PermissionType::GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(parent, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_TRUE(tracker.IsGranted(child, CONTENT_SETTINGS_TYPE_GEOLOCATION)); content::RenderFrameHostTester::For(parent)->SimulateNavigationCommit( GURL(kUniqueOrigin)); - EXPECT_FALSE(tracker.IsGranted(parent, PermissionType::GEOLOCATION)); - EXPECT_FALSE(tracker.IsGranted(child, PermissionType::GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(parent, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(child, CONTENT_SETTINGS_TYPE_GEOLOCATION)); } TEST_F(DelegationTrackerTest, UniqueOrigins) { @@ -216,10 +218,10 @@ content::RenderFrameHost* parent = AddChildRFH(grandparent, kOrigin2); content::RenderFrameHost* child = AddChildRFH(parent, kOrigin3); - tracker.SetDelegatedPermissions(parent, {PermissionType::GEOLOCATION}); - tracker.SetDelegatedPermissions(child, {PermissionType::GEOLOCATION}); + tracker.SetDelegatedPermissions(parent, {CONTENT_SETTINGS_TYPE_GEOLOCATION}); + tracker.SetDelegatedPermissions(child, {CONTENT_SETTINGS_TYPE_GEOLOCATION}); // Unique origins should never be able to delegate permission. - EXPECT_FALSE(tracker.IsGranted(parent, PermissionType::GEOLOCATION)); - EXPECT_FALSE(tracker.IsGranted(child, PermissionType::GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(parent, CONTENT_SETTINGS_TYPE_GEOLOCATION)); + EXPECT_FALSE(tracker.IsGranted(child, CONTENT_SETTINGS_TYPE_GEOLOCATION)); }
diff --git a/chrome/browser/permissions/permission_blacklist_client.cc b/chrome/browser/permissions/permission_blacklist_client.cc index 4262df65d..c57000b 100644 --- a/chrome/browser/permissions/permission_blacklist_client.cc +++ b/chrome/browser/permissions/permission_blacklist_client.cc
@@ -20,27 +20,28 @@ // static void PermissionBlacklistClient::CheckSafeBrowsingBlacklist( scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> db_manager, - content::PermissionType permission_type, + ContentSettingsType content_settings_type, const GURL& request_origin, content::WebContents* web_contents, int timeout, base::Callback<void(bool)> callback) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - new PermissionBlacklistClient(db_manager, permission_type, request_origin, - web_contents, timeout, callback); + new PermissionBlacklistClient(db_manager, content_settings_type, + request_origin, web_contents, timeout, + callback); } PermissionBlacklistClient::PermissionBlacklistClient( scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> db_manager, - content::PermissionType permission_type, + ContentSettingsType content_settings_type, const GURL& request_origin, content::WebContents* web_contents, int timeout, base::Callback<void(bool)> callback) : content::WebContentsObserver(web_contents), db_manager_(db_manager), - permission_type_(permission_type), + content_settings_type_(content_settings_type), callback_(callback), timeout_(timeout), is_active_(true) { @@ -89,8 +90,8 @@ timer_.reset(nullptr); bool permission_blocked = metadata.api_permissions.find( - PermissionUtil::ConvertPermissionTypeToSafeBrowsingName( - permission_type_)) != metadata.api_permissions.end(); + PermissionUtil::ConvertContentSettingsTypeToSafeBrowsingName( + content_settings_type_)) != metadata.api_permissions.end(); if (permission_blocked) response = SafeBrowsingResponse::BLACKLISTED;
diff --git a/chrome/browser/permissions/permission_blacklist_client.h b/chrome/browser/permissions/permission_blacklist_client.h index 1d3f080..87f7333 100644 --- a/chrome/browser/permissions/permission_blacklist_client.h +++ b/chrome/browser/permissions/permission_blacklist_client.h
@@ -9,8 +9,8 @@ #include "base/callback.h" #include "base/memory/ref_counted.h" +#include "components/content_settings/core/common/content_settings_types.h" #include "components/safe_browsing_db/database_manager.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/web_contents_observer.h" class GURL; @@ -38,7 +38,7 @@ // to be alive. static void CheckSafeBrowsingBlacklist( scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> db_manager, - content::PermissionType permission_type, + ContentSettingsType content_settings_type, const GURL& request_origin, content::WebContents* web_contents, int timeout, @@ -49,7 +49,7 @@ PermissionBlacklistClient( scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> db_manager, - content::PermissionType permission_type, + ContentSettingsType content_settings_type, const GURL& request_origin, content::WebContents* web_contents, int timeout, @@ -72,7 +72,7 @@ void WebContentsDestroyed() override; scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> db_manager_; - content::PermissionType permission_type_; + ContentSettingsType content_settings_type_; // PermissionContextBase callback to run on the UI thread. base::Callback<void(bool)> callback_;
diff --git a/chrome/browser/permissions/permission_context_base.cc b/chrome/browser/permissions/permission_context_base.cc index 0d0bb87..4db37b31 100644 --- a/chrome/browser/permissions/permission_context_base.cc +++ b/chrome/browser/permissions/permission_context_base.cc
@@ -29,7 +29,6 @@ #include "chrome/common/chrome_features.h" #include "chrome/common/pref_names.h" #include "components/content_settings/core/browser/host_content_settings_map.h" -#include "components/content_settings/core/browser/website_settings_registry.h" #include "components/prefs/pref_service.h" #include "components/safe_browsing_db/database_manager.h" #include "components/variations/variations_associated_data.h" @@ -58,15 +57,13 @@ PermissionContextBase::PermissionContextBase( Profile* profile, - const content::PermissionType permission_type, const ContentSettingsType content_settings_type) : profile_(profile), - permission_type_(permission_type), content_settings_type_(content_settings_type), weak_factory_(this) { #if defined(OS_ANDROID) - permission_queue_controller_.reset(new PermissionQueueController( - profile_, permission_type_, content_settings_type_)); + permission_queue_controller_.reset( + new PermissionQueueController(profile_, content_settings_type_)); #endif PermissionDecisionAutoBlocker::UpdateFromVariations(); } @@ -90,7 +87,8 @@ content::CONSOLE_MESSAGE_LEVEL_INFO, base::StringPrintf( "%s permission has been blocked.", - PermissionUtil::GetPermissionString(permission_type_).c_str())); + PermissionUtil::GetPermissionString(content_settings_type_) + .c_str())); // The kill switch is enabled for this permission; Block all requests. callback.Run(CONTENT_SETTING_BLOCK); return; @@ -101,9 +99,7 @@ if (!requesting_origin.is_valid() || !embedding_origin.is_valid()) { std::string type_name = - content_settings::WebsiteSettingsRegistry::GetInstance() - ->Get(content_settings_type_) - ->name(); + PermissionUtil::GetPermissionString(content_settings_type_); DVLOG(1) << "Attempt to use " << type_name << " from an invalid URL: " << requesting_origin << "," @@ -121,7 +117,7 @@ GetPermissionStatus(requesting_origin, embedding_origin); if (result.content_setting == CONTENT_SETTING_ALLOW) { HostContentSettingsMapFactory::GetForProfile(profile_)->UpdateLastUsage( - requesting_origin, embedding_origin, content_settings_type_); + requesting_origin, embedding_origin, content_settings_storage_type()); } if (result.content_setting == CONTENT_SETTING_ALLOW || @@ -136,7 +132,7 @@ // have been dismissed too many times in a row. If the origin is allowed to // request, that request will be made to ContinueRequestPermission(). PermissionDecisionAutoBlocker::GetForProfile(profile_)->UpdateEmbargoedStatus( - permission_type_, requesting_origin, web_contents, + content_settings_type_, requesting_origin, web_contents, base::Bind(&PermissionContextBase::ContinueRequestPermission, weak_factory_.GetWeakPtr(), web_contents, id, requesting_origin, embedding_origin, user_gesture, callback)); @@ -156,7 +152,8 @@ content::CONSOLE_MESSAGE_LEVEL_INFO, base::StringPrintf( "%s permission has been auto-blocked.", - PermissionUtil::GetPermissionString(permission_type_).c_str())); + PermissionUtil::GetPermissionString(content_settings_type_) + .c_str())); // Permission has been automatically blocked. PermissionUmaUtil::RecordPermissionEmbargoStatus( PermissionEmbargoStatus::PERMISSIONS_BLACKLISTING); @@ -164,8 +161,8 @@ return; } - PermissionUmaUtil::PermissionRequested(permission_type_, requesting_origin, - embedding_origin, profile_); + PermissionUmaUtil::PermissionRequested( + content_settings_type_, requesting_origin, embedding_origin, profile_); DecidePermission(web_contents, id, requesting_origin, embedding_origin, user_gesture, callback); @@ -193,7 +190,7 @@ GetPermissionStatusInternal(requesting_origin, embedding_origin); if (content_setting == CONTENT_SETTING_ASK && PermissionDecisionAutoBlocker::GetForProfile(profile_)->IsUnderEmbargo( - permission_type_, requesting_origin)) { + content_settings_type_, requesting_origin)) { return PermissionResult(CONTENT_SETTING_BLOCK, PermissionStatusSource::UNSPECIFIED); } @@ -206,8 +203,8 @@ const GURL& embedding_origin) { HostContentSettingsMapFactory::GetForProfile(profile_) ->SetContentSettingDefaultScope(requesting_origin, embedding_origin, - content_settings_type_, std::string(), - CONTENT_SETTING_DEFAULT); + content_settings_storage_type(), + std::string(), CONTENT_SETTING_DEFAULT); } void PermissionContextBase::CancelPermissionRequest( @@ -234,7 +231,7 @@ bool PermissionContextBase::IsPermissionKillSwitchOn() const { const std::string param = variations::GetVariationParamValue( kPermissionsKillSwitchFieldStudy, - PermissionUtil::GetPermissionString(permission_type_)); + PermissionUtil::GetPermissionString(content_settings_type_)); return param == kPermissionsKillSwitchBlockedValue; } @@ -244,7 +241,7 @@ const GURL& embedding_origin) const { return HostContentSettingsMapFactory::GetForProfile(profile_) ->GetContentSetting(requesting_origin, embedding_origin, - content_settings_type_, std::string()); + content_settings_storage_type(), std::string()); } void PermissionContextBase::DecidePermission( @@ -266,7 +263,7 @@ std::unique_ptr<PermissionRequest> request_ptr = base::MakeUnique<PermissionRequestImpl>( - requesting_origin, permission_type_, profile_, user_gesture, + requesting_origin, content_settings_type_, profile_, user_gesture, base::Bind(&PermissionContextBase::PermissionDecided, weak_factory_.GetWeakPtr(), id, requesting_origin, embedding_origin, user_gesture, callback), @@ -316,17 +313,18 @@ content_setting == CONTENT_SETTING_BLOCK || content_setting == CONTENT_SETTING_DEFAULT); if (content_setting == CONTENT_SETTING_ALLOW) { - PermissionUmaUtil::PermissionGranted(permission_type_, gesture_type, + PermissionUmaUtil::PermissionGranted(content_settings_type_, gesture_type, requesting_origin, profile_); } else if (content_setting == CONTENT_SETTING_BLOCK) { - PermissionUmaUtil::PermissionDenied(permission_type_, gesture_type, + PermissionUmaUtil::PermissionDenied(content_settings_type_, gesture_type, requesting_origin, profile_); } else { - PermissionUmaUtil::PermissionDismissed(permission_type_, gesture_type, - requesting_origin, profile_); + PermissionUmaUtil::PermissionDismissed( + content_settings_type_, gesture_type, requesting_origin, profile_); if (PermissionDecisionAutoBlocker::GetForProfile(profile_) - ->RecordDismissAndEmbargo(requesting_origin, permission_type_)) { + ->RecordDismissAndEmbargo(requesting_origin, + content_settings_type_)) { embargo_status = PermissionEmbargoStatus::REPEATED_DISMISSALS; } } @@ -386,6 +384,13 @@ HostContentSettingsMapFactory::GetForProfile(profile_) ->SetContentSettingDefaultScope(requesting_origin, embedding_origin, - content_settings_type_, std::string(), - content_setting); + content_settings_storage_type(), + std::string(), content_setting); +} + +ContentSettingsType PermissionContextBase::content_settings_storage_type() + const { + if (content_settings_type_ == CONTENT_SETTINGS_TYPE_PUSH_MESSAGING) + return CONTENT_SETTINGS_TYPE_NOTIFICATIONS; + return content_settings_type_; }
diff --git a/chrome/browser/permissions/permission_context_base.h b/chrome/browser/permissions/permission_context_base.h index 7ea2e08..1957a44 100644 --- a/chrome/browser/permissions/permission_context_base.h +++ b/chrome/browser/permissions/permission_context_base.h
@@ -15,7 +15,6 @@ #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_types.h" #include "components/keyed_service/core/keyed_service.h" -#include "content/public/browser/permission_type.h" #if defined(OS_ANDROID) class PermissionQueueController; @@ -83,7 +82,6 @@ class PermissionContextBase : public KeyedService { public: PermissionContextBase(Profile* profile, - const content::PermissionType permission_type, const ContentSettingsType content_settings_type); ~PermissionContextBase() override; @@ -181,11 +179,15 @@ // Whether the permission should be restricted to secure origins. virtual bool IsRestrictedToSecureOrigins() const = 0; - content::PermissionType permission_type() const { return permission_type_; } ContentSettingsType content_settings_type() const { return content_settings_type_; } + // TODO(timloh): The CONTENT_SETTINGS_TYPE_NOTIFICATIONS type is used to + // store both push messaging and notifications permissions. Remove this + // once we've unified these types (crbug.com/563297). + ContentSettingsType content_settings_storage_type() const; + private: friend class PermissionContextBaseTests; @@ -204,7 +206,6 @@ bool permission_blocked); Profile* profile_; - const content::PermissionType permission_type_; const ContentSettingsType content_settings_type_; #if defined(OS_ANDROID) std::unique_ptr<PermissionQueueController> permission_queue_controller_;
diff --git a/chrome/browser/permissions/permission_context_base_unittest.cc b/chrome/browser/permissions/permission_context_base_unittest.cc index 5c6d814..9dd2f2a 100644 --- a/chrome/browser/permissions/permission_context_base_unittest.cc +++ b/chrome/browser/permissions/permission_context_base_unittest.cc
@@ -38,7 +38,6 @@ #include "components/safe_browsing_db/test_database_manager.h" #include "components/variations/variations_associated_data.h" #include "content/public/browser/browser_thread.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" #include "content/public/test/mock_render_process_host.h" @@ -104,9 +103,8 @@ class TestPermissionContext : public PermissionContextBase { public: TestPermissionContext(Profile* profile, - const content::PermissionType permission_type, const ContentSettingsType content_settings_type) - : PermissionContextBase(profile, permission_type, content_settings_type), + : PermissionContextBase(profile, content_settings_type), tab_context_updated_(false) {} ~TestPermissionContext() override {} @@ -137,7 +135,8 @@ const GURL& url_b) { auto* map = HostContentSettingsMapFactory::GetForProfile(profile()); return map->GetContentSetting(url_a.GetOrigin(), url_b.GetOrigin(), - content_settings_type(), std::string()); + content_settings_storage_type(), + std::string()); } void RequestPermission(content::WebContents* web_contents, @@ -204,9 +203,8 @@ public: TestKillSwitchPermissionContext( Profile* profile, - const content::PermissionType permission_type, const ContentSettingsType content_settings_type) - : TestPermissionContext(profile, permission_type, content_settings_type), + : TestPermissionContext(profile, content_settings_type), field_trial_list_(base::MakeUnique<base::FieldTrialList>( base::MakeUnique<base::MockEntropyProvider>())) {} @@ -267,12 +265,10 @@ #endif } - void TestAskAndDecide_TestContent(content::PermissionType permission, - ContentSettingsType content_settings_type, + void TestAskAndDecide_TestContent(ContentSettingsType content_settings_type, ContentSetting decision, bool persist) { - TestPermissionContext permission_context(profile(), permission, - content_settings_type); + TestPermissionContext permission_context(profile(), content_settings_type); GURL url("https://www.google.com"); NavigateAndCommit(url); base::HistogramTester histograms; @@ -305,11 +301,11 @@ if (decision_string.size()) { histograms.ExpectUniqueSample( "Permissions.Prompt." + decision_string + ".PriorDismissCount." + - PermissionUtil::GetPermissionString(permission), + PermissionUtil::GetPermissionString(content_settings_type), 0, 1); histograms.ExpectUniqueSample( "Permissions.Prompt." + decision_string + ".PriorIgnoreCount." + - PermissionUtil::GetPermissionString(permission), + PermissionUtil::GetPermissionString(content_settings_type), 0, 1); } @@ -327,7 +323,6 @@ void DismissMultipleTimesAndExpectBlock( const GURL& url, - content::PermissionType permission_type, ContentSettingsType content_settings_type, uint32_t iterations) { base::HistogramTester histograms; @@ -337,8 +332,8 @@ for (uint32_t i = 0; i < iterations; ++i) { ContentSetting expected = (i < 2) ? CONTENT_SETTING_ASK : CONTENT_SETTING_BLOCK; - TestPermissionContext permission_context( - profile(), permission_type, content_settings_type); + TestPermissionContext permission_context(profile(), + content_settings_type); const PermissionRequestID id( web_contents()->GetRenderProcessHost()->GetID(), web_contents()->GetMainFrame()->GetRoutingID(), i); @@ -354,11 +349,11 @@ base::Unretained(&permission_context))); histograms.ExpectTotalCount( "Permissions.Prompt.Dismissed.PriorDismissCount." + - PermissionUtil::GetPermissionString(permission_type), + PermissionUtil::GetPermissionString(content_settings_type), i + 1); histograms.ExpectBucketCount( "Permissions.Prompt.Dismissed.PriorDismissCount." + - PermissionUtil::GetPermissionString(permission_type), + PermissionUtil::GetPermissionString(content_settings_type), i, 1); histograms.ExpectTotalCount("Permissions.AutoBlocker.EmbargoStatus", i + 1); @@ -381,8 +376,7 @@ EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source); } - TestPermissionContext permission_context(profile(), permission_type, - content_settings_type); + TestPermissionContext permission_context(profile(), content_settings_type); const PermissionRequestID id( web_contents()->GetRenderProcessHost()->GetID(), web_contents()->GetMainFrame()->GetRoutingID(), -1); @@ -410,8 +404,7 @@ // First, ensure that > 3 dismissals behaves correctly. for (uint32_t i = 0; i < 4; ++i) { TestPermissionContext permission_context( - profile(), content::PermissionType::GEOLOCATION, - CONTENT_SETTINGS_TYPE_GEOLOCATION); + profile(), CONTENT_SETTINGS_TYPE_GEOLOCATION); const PermissionRequestID id( web_contents()->GetRenderProcessHost()->GetID(), @@ -455,10 +448,8 @@ // Sanity check independence per permission type by checking two of them. DismissMultipleTimesAndExpectBlock(url, - content::PermissionType::GEOLOCATION, CONTENT_SETTINGS_TYPE_GEOLOCATION, 3); DismissMultipleTimesAndExpectBlock(url, - content::PermissionType::NOTIFICATIONS, CONTENT_SETTINGS_TYPE_NOTIFICATIONS, 3); } @@ -498,8 +489,7 @@ for (uint32_t i = 0; i < 5; ++i) { TestPermissionContext permission_context( - profile(), content::PermissionType::MIDI_SYSEX, - CONTENT_SETTINGS_TYPE_MIDI_SYSEX); + profile(), CONTENT_SETTINGS_TYPE_MIDI_SYSEX); ContentSetting expected = (i < 4) ? CONTENT_SETTING_ASK : CONTENT_SETTING_BLOCK; @@ -542,9 +532,8 @@ } // Ensure that we finish in the block state. - TestPermissionContext permission_context( - profile(), content::PermissionType::MIDI_SYSEX, - CONTENT_SETTINGS_TYPE_MIDI_SYSEX); + TestPermissionContext permission_context(profile(), + CONTENT_SETTINGS_TYPE_MIDI_SYSEX); PermissionResult result = permission_context.GetPermissionStatus(url, url); EXPECT_EQ(CONTENT_SETTING_BLOCK, result.content_setting); EXPECT_EQ(PermissionStatusSource::UNSPECIFIED, result.source); @@ -553,10 +542,8 @@ } void TestRequestPermissionInvalidUrl( - content::PermissionType permission_type, ContentSettingsType content_settings_type) { - TestPermissionContext permission_context(profile(), permission_type, - content_settings_type); + TestPermissionContext permission_context(profile(), content_settings_type); GURL url; ASSERT_FALSE(url.is_valid()); NavigateAndCommit(url); @@ -578,11 +565,9 @@ permission_context.GetContentSettingFromMap(url, url)); } - void TestGrantAndRevoke_TestContent(content::PermissionType permission_type, - ContentSettingsType content_settings_type, + void TestGrantAndRevoke_TestContent(ContentSettingsType content_settings_type, ContentSetting expected_default) { - TestPermissionContext permission_context(profile(), permission_type, - content_settings_type); + TestPermissionContext permission_context(profile(), content_settings_type); GURL url("https://www.google.com"); NavigateAndCommit(url); @@ -618,15 +603,14 @@ } void TestGlobalPermissionsKillSwitch( - content::PermissionType permission_type, ContentSettingsType content_settings_type) { - TestKillSwitchPermissionContext permission_context( - profile(), permission_type, content_settings_type); + TestKillSwitchPermissionContext permission_context(profile(), + content_settings_type); permission_context.ResetFieldTrialList(); EXPECT_FALSE(permission_context.IsPermissionKillSwitchOn()); std::map<std::string, std::string> params; - params[PermissionUtil::GetPermissionString(permission_type)] = + params[PermissionUtil::GetPermissionString(content_settings_type)] = kPermissionsKillSwitchBlockedValue; variations::AssociateVariationParams( kPermissionsKillSwitchFieldStudy, kPermissionsKillSwitchTestGroup, @@ -640,8 +624,7 @@ // HostContentSettingsMap. void TestParallelRequests(ContentSetting response) { TestPermissionContext permission_context( - profile(), content::PermissionType::NOTIFICATIONS, - CONTENT_SETTINGS_TYPE_NOTIFICATIONS); + profile(), CONTENT_SETTINGS_TYPE_NOTIFICATIONS); GURL url("http://www.google.com"); NavigateAndCommit(url); @@ -682,7 +665,6 @@ } void TestPermissionsBlacklisting( - content::PermissionType permission_type, ContentSettingsType content_settings_type, scoped_refptr<safe_browsing::SafeBrowsingDatabaseManager> db_manager, const GURL& url, @@ -693,8 +675,7 @@ base::HistogramTester histograms; base::test::ScopedFeatureList scoped_feature_list; scoped_feature_list.InitAndEnableFeature(features::kPermissionsBlacklist); - TestPermissionContext permission_context(profile(), permission_type, - content_settings_type); + TestPermissionContext permission_context(profile(), content_settings_type); PermissionDecisionAutoBlocker::GetForProfile(profile()) ->SetSafeBrowsingDatabaseManagerAndTimeoutForTesting(db_manager, timeout); @@ -745,39 +726,34 @@ // Simulates clicking Accept. The permission should be granted and // saved for future use. TEST_F(PermissionContextBaseTests, TestAskAndGrantPersist) { - TestAskAndDecide_TestContent(content::PermissionType::NOTIFICATIONS, - CONTENT_SETTINGS_TYPE_NOTIFICATIONS, + TestAskAndDecide_TestContent(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW, true); } // Simulates clicking Accept. The permission should be granted, but not // persisted. TEST_F(PermissionContextBaseTests, TestAskAndGrantNoPersist) { - TestAskAndDecide_TestContent(content::PermissionType::NOTIFICATIONS, - CONTENT_SETTINGS_TYPE_NOTIFICATIONS, + TestAskAndDecide_TestContent(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW, false); } // Simulates clicking Block. The permission should be denied and // saved for future use. TEST_F(PermissionContextBaseTests, TestAskAndBlockPersist) { - TestAskAndDecide_TestContent(content::PermissionType::GEOLOCATION, - CONTENT_SETTINGS_TYPE_GEOLOCATION, + TestAskAndDecide_TestContent(CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_BLOCK, true); } // Simulates clicking Block. The permission should be denied, but not persisted. TEST_F(PermissionContextBaseTests, TestAskAndBlockNoPersist) { - TestAskAndDecide_TestContent(content::PermissionType::GEOLOCATION, - CONTENT_SETTINGS_TYPE_GEOLOCATION, + TestAskAndDecide_TestContent(CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_BLOCK, false); } // Simulates clicking Dismiss (X) in the infobar/bubble. // The permission should be denied but not saved for future use. TEST_F(PermissionContextBaseTests, TestAskAndDismiss) { - TestAskAndDecide_TestContent(content::PermissionType::MIDI_SYSEX, - CONTENT_SETTINGS_TYPE_MIDI_SYSEX, + TestAskAndDecide_TestContent(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, CONTENT_SETTING_ASK, false); } @@ -796,17 +772,12 @@ // Simulates non-valid requesting URL. // The permission should be denied but not saved for future use. TEST_F(PermissionContextBaseTests, TestNonValidRequestingUrl) { - TestRequestPermissionInvalidUrl(content::PermissionType::GEOLOCATION, - CONTENT_SETTINGS_TYPE_GEOLOCATION); - TestRequestPermissionInvalidUrl(content::PermissionType::NOTIFICATIONS, - CONTENT_SETTINGS_TYPE_NOTIFICATIONS); - TestRequestPermissionInvalidUrl(content::PermissionType::MIDI_SYSEX, - CONTENT_SETTINGS_TYPE_MIDI_SYSEX); - TestRequestPermissionInvalidUrl(content::PermissionType::PUSH_MESSAGING, - CONTENT_SETTINGS_TYPE_NOTIFICATIONS); + TestRequestPermissionInvalidUrl(CONTENT_SETTINGS_TYPE_GEOLOCATION); + TestRequestPermissionInvalidUrl(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); + TestRequestPermissionInvalidUrl(CONTENT_SETTINGS_TYPE_MIDI_SYSEX); + TestRequestPermissionInvalidUrl(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); #if defined(OS_ANDROID) || defined(OS_CHROMEOS) TestRequestPermissionInvalidUrl( - content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER); #endif } @@ -814,14 +785,11 @@ #if defined(OS_ANDROID) // This test is specific to Android because other platforms use bubbles. TEST_F(PermissionContextBaseTests, TestGrantAndRevokeWithInfobars) { - TestGrantAndRevoke_TestContent(content::PermissionType::GEOLOCATION, - CONTENT_SETTINGS_TYPE_GEOLOCATION, + TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_ASK); - TestGrantAndRevoke_TestContent(content::PermissionType::MIDI_SYSEX, - CONTENT_SETTINGS_TYPE_MIDI_SYSEX, + TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, CONTENT_SETTING_ASK); TestGrantAndRevoke_TestContent( - content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, CONTENT_SETTING_ASK); // TODO(timvolodine): currently no test for // CONTENT_SETTINGS_TYPE_NOTIFICATIONS because notification permissions work @@ -833,42 +801,28 @@ // Simulates granting and revoking of permissions using permission bubbles. // This test shouldn't run on mobile because mobile platforms use infobars. TEST_F(PermissionContextBaseTests, TestGrantAndRevokeWithBubbles) { - TestGrantAndRevoke_TestContent(content::PermissionType::GEOLOCATION, - CONTENT_SETTINGS_TYPE_GEOLOCATION, + TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_ASK); - TestGrantAndRevoke_TestContent(content::PermissionType::NOTIFICATIONS, - CONTENT_SETTINGS_TYPE_NOTIFICATIONS, + TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ASK); - TestGrantAndRevoke_TestContent(content::PermissionType::MIDI_SYSEX, - CONTENT_SETTINGS_TYPE_MIDI_SYSEX, - CONTENT_SETTING_ASK); - TestGrantAndRevoke_TestContent(content::PermissionType::PUSH_MESSAGING, - CONTENT_SETTINGS_TYPE_NOTIFICATIONS, + TestGrantAndRevoke_TestContent(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, CONTENT_SETTING_ASK); } #endif // Tests the global kill switch by enabling/disabling the Field Trials. TEST_F(PermissionContextBaseTests, TestGlobalKillSwitch) { - TestGlobalPermissionsKillSwitch(content::PermissionType::GEOLOCATION, - CONTENT_SETTINGS_TYPE_GEOLOCATION); - TestGlobalPermissionsKillSwitch(content::PermissionType::NOTIFICATIONS, - CONTENT_SETTINGS_TYPE_NOTIFICATIONS); - TestGlobalPermissionsKillSwitch(content::PermissionType::MIDI_SYSEX, - CONTENT_SETTINGS_TYPE_MIDI_SYSEX); - TestGlobalPermissionsKillSwitch(content::PermissionType::PUSH_MESSAGING, - CONTENT_SETTINGS_TYPE_NOTIFICATIONS); - TestGlobalPermissionsKillSwitch(content::PermissionType::DURABLE_STORAGE, - CONTENT_SETTINGS_TYPE_DURABLE_STORAGE); + TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_GEOLOCATION); + TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); + TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_MIDI_SYSEX); + TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); + TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_DURABLE_STORAGE); #if defined(OS_ANDROID) || defined(OS_CHROMEOS) TestGlobalPermissionsKillSwitch( - content::PermissionType::PROTECTED_MEDIA_IDENTIFIER, CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER); #endif - TestGlobalPermissionsKillSwitch(content::PermissionType::AUDIO_CAPTURE, - CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC); - TestGlobalPermissionsKillSwitch(content::PermissionType::VIDEO_CAPTURE, - CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); + TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC); + TestGlobalPermissionsKillSwitch(CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); } TEST_F(PermissionContextBaseTests, TestParallelRequestsAllowed) { @@ -892,7 +846,7 @@ std::set<std::string> blacklisted_permissions{"GEOLOCATION"}; db_manager->BlacklistUrlPermissions(url, blacklisted_permissions); TestPermissionsBlacklisting( - content::PermissionType::GEOLOCATION, CONTENT_SETTINGS_TYPE_GEOLOCATION, + CONTENT_SETTINGS_TYPE_GEOLOCATION, db_manager, url, 2000 /* timeout */, CONTENT_SETTING_BLOCK, PermissionEmbargoStatus::PERMISSIONS_BLACKLISTING); } @@ -905,8 +859,7 @@ const GURL url("https://www.example.com"); std::set<std::string> blacklisted_permissions{"GEOLOCATION"}; db_manager->BlacklistUrlPermissions(url, blacklisted_permissions); - TestPermissionsBlacklisting(content::PermissionType::NOTIFICATIONS, - CONTENT_SETTINGS_TYPE_NOTIFICATIONS, db_manager, + TestPermissionsBlacklisting(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, db_manager, url, 2000 /* timeout */, CONTENT_SETTING_ALLOW, PermissionEmbargoStatus::NOT_EMBARGOED); }
diff --git a/chrome/browser/permissions/permission_decision_auto_blocker.cc b/chrome/browser/permissions/permission_decision_auto_blocker.cc index f8ab89c..017553d 100644 --- a/chrome/browser/permissions/permission_decision_auto_blocker.cc +++ b/chrome/browser/permissions/permission_decision_auto_blocker.cc
@@ -22,7 +22,6 @@ #include "components/keyed_service/content/browser_context_dependency_manager.h" #include "components/safe_browsing_db/database_manager.h" #include "components/variations/variations_associated_data.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/web_contents.h" #include "url/gurl.h" @@ -74,7 +73,7 @@ } int RecordActionInWebsiteSettings(const GURL& url, - content::PermissionType permission, + ContentSettingsType permission, const char* key, Profile* profile) { HostContentSettingsMap* map = @@ -96,7 +95,7 @@ } int GetActionCount(const GURL& url, - content::PermissionType permission, + ContentSettingsType permission, const char* key, Profile* profile) { HostContentSettingsMap* map = @@ -206,19 +205,19 @@ int PermissionDecisionAutoBlocker::GetDismissCount( const GURL& url, - content::PermissionType permission) { + ContentSettingsType permission) { return GetActionCount(url, permission, kPromptDismissCountKey, profile_); } int PermissionDecisionAutoBlocker::GetIgnoreCount( const GURL& url, - content::PermissionType permission) { + ContentSettingsType permission) { return GetActionCount(url, permission, kPromptIgnoreCountKey, profile_); } bool PermissionDecisionAutoBlocker::RecordDismissAndEmbargo( const GURL& url, - content::PermissionType permission) { + ContentSettingsType permission) { int current_dismissal_count = RecordActionInWebsiteSettings( url, permission, kPromptDismissCountKey, profile_); @@ -232,7 +231,7 @@ int PermissionDecisionAutoBlocker::RecordIgnore( const GURL& url, - content::PermissionType permission) { + ContentSettingsType permission) { return RecordActionInWebsiteSettings(url, permission, kPromptIgnoreCountKey, profile_); } @@ -267,7 +266,7 @@ } void PermissionDecisionAutoBlocker::UpdateEmbargoedStatus( - content::PermissionType permission, + ContentSettingsType permission, const GURL& request_origin, content::WebContents* web_contents, base::Callback<void(bool)> callback) { @@ -291,7 +290,7 @@ } bool PermissionDecisionAutoBlocker::IsUnderEmbargo( - content::PermissionType permission, + ContentSettingsType permission, const GURL& request_origin) { HostContentSettingsMap* map = HostContentSettingsMapFactory::GetForProfile(profile_); @@ -328,7 +327,7 @@ } void PermissionDecisionAutoBlocker::CheckSafeBrowsingResult( - content::PermissionType permission, + ContentSettingsType permission, const GURL& request_origin, base::Callback<void(bool)> callback, bool should_be_embargoed) { @@ -342,7 +341,7 @@ } void PermissionDecisionAutoBlocker::PlaceUnderEmbargo( - content::PermissionType permission, + ContentSettingsType permission, const GURL& request_origin, const char* key) { HostContentSettingsMap* map =
diff --git a/chrome/browser/permissions/permission_decision_auto_blocker.h b/chrome/browser/permissions/permission_decision_auto_blocker.h index 5d9660d..ade0ff05 100644 --- a/chrome/browser/permissions/permission_decision_auto_blocker.h +++ b/chrome/browser/permissions/permission_decision_auto_blocker.h
@@ -10,9 +10,9 @@ #include "base/memory/ref_counted.h" #include "base/memory/singleton.h" #include "base/time/default_clock.h" +#include "components/content_settings/core/common/content_settings_types.h" #include "components/keyed_service/content/browser_context_keyed_service_factory.h" #include "components/keyed_service/core/keyed_service.h" -#include "content/public/browser/permission_type.h" #include "url/gurl.h" class GURL; @@ -62,21 +62,20 @@ // Returns the current number of dismisses recorded for |permission| type at // |url|. - int GetDismissCount(const GURL& url, content::PermissionType permission); + int GetDismissCount(const GURL& url, ContentSettingsType permission); // Returns the current number of ignores recorded for |permission| // type at |url|. - int GetIgnoreCount(const GURL& url, content::PermissionType permission); + int GetIgnoreCount(const GURL& url, ContentSettingsType permission); // Records that a dismissal of a prompt for |permission| was made. If the // total number of dismissals exceeds a threshhold and // features::kBlockPromptsIfDismissedOften is enabled it will place |url| // under embargo for |permission|. - bool RecordDismissAndEmbargo(const GURL& url, - content::PermissionType permission); + bool RecordDismissAndEmbargo(const GURL& url, ContentSettingsType permission); // Records that an ignore of a prompt for |permission| was made. - int RecordIgnore(const GURL& url, content::PermissionType permission); + int RecordIgnore(const GURL& url, ContentSettingsType permission); // Updates the threshold to start blocking prompts from the field trial. static void UpdateFromVariations(); @@ -85,7 +84,7 @@ // this will make a call to IsUnderEmbargo to check the content setting first, // but may also make a call to Safe Browsing to check the API blacklist, which // is performed asynchronously. - void UpdateEmbargoedStatus(content::PermissionType permission, + void UpdateEmbargoedStatus(ContentSettingsType permission, const GURL& request_origin, content::WebContents* web_contents, base::Callback<void(bool)> callback); @@ -93,7 +92,7 @@ // Checks the status of the content setting to determine if |request_origin| // is under embargo for |permission|. This checks both embargo for Permissions // Blacklisting and repeated dismissals. - bool IsUnderEmbargo(content::PermissionType permission, + bool IsUnderEmbargo(ContentSettingsType permission, const GURL& request_origin); private: @@ -105,12 +104,12 @@ // Get the result of the Safe Browsing check, if |should_be_embargoed| is true // then |request_origin| will be placed under embargo for that |permission|. - void CheckSafeBrowsingResult(content::PermissionType permission, + void CheckSafeBrowsingResult(ContentSettingsType permission, const GURL& request_origin, base::Callback<void(bool)> callback, bool should_be_embargoed); - void PlaceUnderEmbargo(content::PermissionType permission, + void PlaceUnderEmbargo(ContentSettingsType permission, const GURL& request_origin, const char* key);
diff --git a/chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc b/chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc index 061a905..43b884e2 100644 --- a/chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc +++ b/chrome/browser/permissions/permission_decision_auto_blocker_unittest.cc
@@ -19,7 +19,6 @@ #include "chrome/test/base/testing_profile.h" #include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/safe_browsing_db/test_database_manager.h" -#include "content/public/browser/permission_type.h" namespace { @@ -107,8 +106,7 @@ timeout); } - void UpdateEmbargoedStatus(content::PermissionType permission, - const GURL& url) { + void UpdateEmbargoedStatus(ContentSettingsType permission, const GURL& url) { base::RunLoop run_loop; autoblocker_->UpdateEmbargoedStatus( permission, url, nullptr, @@ -120,7 +118,7 @@ // Manually placing an (origin, permission) pair under embargo for // blacklisting. To embargo on dismissals, RecordDismissAndEmbargo can be // used. - void PlaceUnderBlacklistEmbargo(content::PermissionType permission, + void PlaceUnderBlacklistEmbargo(ContentSettingsType permission, const GURL& url) { autoblocker_->PlaceUnderEmbargo( permission, url, @@ -166,102 +164,102 @@ // Record some dismissals. EXPECT_FALSE(autoblocker()->RecordDismissAndEmbargo( - url1, content::PermissionType::GEOLOCATION)); + url1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(1, autoblocker()->GetDismissCount( - url1, content::PermissionType::GEOLOCATION)); + url1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_FALSE(autoblocker()->RecordDismissAndEmbargo( - url1, content::PermissionType::GEOLOCATION)); + url1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(2, autoblocker()->GetDismissCount( - url1, content::PermissionType::GEOLOCATION)); + url1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_TRUE(autoblocker()->RecordDismissAndEmbargo( - url1, content::PermissionType::GEOLOCATION)); + url1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(3, autoblocker()->GetDismissCount( - url1, content::PermissionType::GEOLOCATION)); + url1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_FALSE(autoblocker()->RecordDismissAndEmbargo( - url2, content::PermissionType::GEOLOCATION)); + url2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(1, autoblocker()->GetDismissCount( - url2, content::PermissionType::GEOLOCATION)); + url2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_FALSE(autoblocker()->RecordDismissAndEmbargo( - url1, content::PermissionType::NOTIFICATIONS)); + url1, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); EXPECT_EQ(1, autoblocker()->GetDismissCount( - url1, content::PermissionType::NOTIFICATIONS)); + url1, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); // Record some ignores. EXPECT_EQ(1, autoblocker()->RecordIgnore( - url1, content::PermissionType::MIDI_SYSEX)); + url1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); EXPECT_EQ(1, autoblocker()->RecordIgnore( - url1, content::PermissionType::DURABLE_STORAGE)); + url1, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); EXPECT_EQ(1, autoblocker()->RecordIgnore( - url2, content::PermissionType::GEOLOCATION)); + url2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(2, autoblocker()->RecordIgnore( - url2, content::PermissionType::GEOLOCATION)); + url2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); autoblocker()->RemoveCountsByUrl(base::Bind(&FilterGoogle)); // Expect that url1's actions are gone, but url2's remain. EXPECT_EQ(0, autoblocker()->GetDismissCount( - url1, content::PermissionType::GEOLOCATION)); + url1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(0, autoblocker()->GetDismissCount( - url1, content::PermissionType::NOTIFICATIONS)); + url1, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); EXPECT_EQ(0, autoblocker()->GetIgnoreCount( - url1, content::PermissionType::MIDI_SYSEX)); + url1, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); EXPECT_EQ(0, autoblocker()->GetIgnoreCount( - url1, content::PermissionType::DURABLE_STORAGE)); + url1, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); EXPECT_EQ(1, autoblocker()->GetDismissCount( - url2, content::PermissionType::GEOLOCATION)); + url2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(2, autoblocker()->GetIgnoreCount( - url2, content::PermissionType::GEOLOCATION)); + url2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); // Add some more actions. EXPECT_FALSE(autoblocker()->RecordDismissAndEmbargo( - url1, content::PermissionType::GEOLOCATION)); + url1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(1, autoblocker()->GetDismissCount( - url1, content::PermissionType::GEOLOCATION)); + url1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_FALSE(autoblocker()->RecordDismissAndEmbargo( - url1, content::PermissionType::NOTIFICATIONS)); + url1, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); EXPECT_EQ(1, autoblocker()->GetDismissCount( - url1, content::PermissionType::NOTIFICATIONS)); + url1, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); EXPECT_FALSE(autoblocker()->RecordDismissAndEmbargo( - url2, content::PermissionType::GEOLOCATION)); + url2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(2, autoblocker()->GetDismissCount( - url2, content::PermissionType::GEOLOCATION)); + url2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(1, autoblocker()->RecordIgnore( - url1, content::PermissionType::GEOLOCATION)); + url1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(1, autoblocker()->RecordIgnore( - url1, content::PermissionType::NOTIFICATIONS)); + url1, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); EXPECT_EQ(1, autoblocker()->RecordIgnore( - url1, content::PermissionType::DURABLE_STORAGE)); + url1, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); EXPECT_EQ(1, autoblocker()->RecordIgnore( - url2, content::PermissionType::MIDI_SYSEX)); + url2, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); // Remove everything and expect that it's all gone. autoblocker()->RemoveCountsByUrl(base::Bind(&FilterAll)); EXPECT_EQ(0, autoblocker()->GetDismissCount( - url1, content::PermissionType::GEOLOCATION)); + url1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(0, autoblocker()->GetDismissCount( - url1, content::PermissionType::NOTIFICATIONS)); + url1, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); EXPECT_EQ(0, autoblocker()->GetDismissCount( - url2, content::PermissionType::GEOLOCATION)); + url2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(0, autoblocker()->GetIgnoreCount( - url1, content::PermissionType::GEOLOCATION)); + url1, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(0, autoblocker()->GetIgnoreCount( - url1, content::PermissionType::NOTIFICATIONS)); + url1, CONTENT_SETTINGS_TYPE_NOTIFICATIONS)); EXPECT_EQ(0, autoblocker()->GetIgnoreCount( - url2, content::PermissionType::GEOLOCATION)); + url2, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(0, autoblocker()->GetIgnoreCount( - url2, content::PermissionType::DURABLE_STORAGE)); + url2, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE)); EXPECT_EQ(0, autoblocker()->GetIgnoreCount( - url2, content::PermissionType::MIDI_SYSEX)); + url2, CONTENT_SETTINGS_TYPE_MIDI_SYSEX)); } // Test that an origin that has been blacklisted for a permission is embargoed. @@ -277,7 +275,7 @@ SetSafeBrowsingDatabaseManagerAndTimeoutForTesting(db_manager, 2000 /* timeout in ms */); - UpdateEmbargoedStatus(content::PermissionType::GEOLOCATION, url); + UpdateEmbargoedStatus(CONTENT_SETTINGS_TYPE_GEOLOCATION, url); EXPECT_TRUE(callback_was_run()); EXPECT_TRUE(last_embargoed_status()); histograms.ExpectUniqueSample("Permissions.AutoBlocker.SafeBrowsingResponse", @@ -301,7 +299,7 @@ SetSafeBrowsingDatabaseManagerAndTimeoutForTesting(db_manager, 0 /* timeout in ms */); - UpdateEmbargoedStatus(content::PermissionType::NOTIFICATIONS, url); + UpdateEmbargoedStatus(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, url); EXPECT_FALSE(last_embargoed_status()); histograms.ExpectUniqueSample("Permissions.AutoBlocker.SafeBrowsingResponse", SafeBrowsingResponse::NOT_BLACKLISTED, 1); @@ -315,36 +313,36 @@ GURL url("https://www.google.com"); clock()->SetNow(base::Time::Now()); - PlaceUnderBlacklistEmbargo(content::PermissionType::GEOLOCATION, url); + PlaceUnderBlacklistEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url); EXPECT_TRUE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); // Check that the origin is not under embargo for a different permission. - EXPECT_FALSE(autoblocker()->IsUnderEmbargo( - content::PermissionType::NOTIFICATIONS, url)); + EXPECT_FALSE( + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, url)); // Confirm embargo status during the embargo period. clock()->Advance(base::TimeDelta::FromDays(5)); EXPECT_TRUE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); // Check embargo is lifted on expiry day. A small offset after the exact // embargo expiration date has been added to account for any precision errors // when removing the date stored as a double from the permission dictionary. clock()->Advance(base::TimeDelta::FromHours(3 * 24 + 1)); EXPECT_FALSE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); // Check embargo is lifted well after the expiry day. clock()->Advance(base::TimeDelta::FromDays(1)); EXPECT_FALSE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); // Place under embargo again and verify the embargo status. - PlaceUnderBlacklistEmbargo(content::PermissionType::NOTIFICATIONS, url); + PlaceUnderBlacklistEmbargo(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, url); clock()->Advance(base::TimeDelta::FromDays(1)); - EXPECT_TRUE(autoblocker()->IsUnderEmbargo( - content::PermissionType::NOTIFICATIONS, url)); + EXPECT_TRUE( + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, url)); } // Tests the alternating pattern of the block on multiple dismiss behaviour. On @@ -359,19 +357,19 @@ // Record some dismisses. EXPECT_FALSE(autoblocker()->RecordDismissAndEmbargo( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_FALSE(autoblocker()->RecordDismissAndEmbargo( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); // A request with < 3 prior dismisses should not be automatically blocked. EXPECT_FALSE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); // After the 3rd dismiss subsequent permission requests should be autoblocked. EXPECT_TRUE(autoblocker()->RecordDismissAndEmbargo( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_TRUE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); histograms.ExpectTotalCount("Permissions.AutoBlocker.SafeBrowsingResponse", 0); @@ -381,25 +379,25 @@ // request won't be automatically blocked. clock()->Advance(base::TimeDelta::FromDays(8)); EXPECT_FALSE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); // Record another dismiss, subsequent requests should be autoblocked again. EXPECT_TRUE(autoblocker()->RecordDismissAndEmbargo( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_TRUE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); // Accelerate time again, check embargo is lifted and another permission // request is let through. clock()->Advance(base::TimeDelta::FromDays(8)); EXPECT_FALSE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); // Record another dismiss, subsequent requests should be autoblocked again. EXPECT_TRUE(autoblocker()->RecordDismissAndEmbargo( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_TRUE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); histograms.ExpectTotalCount("Permissions.AutoBlocker.SafeBrowsingResponse", 0); histograms.ExpectTotalCount( @@ -412,24 +410,24 @@ clock()->SetNow(base::Time::Now()); // Place under blacklist embargo and check the status. - PlaceUnderBlacklistEmbargo(content::PermissionType::GEOLOCATION, url); + PlaceUnderBlacklistEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url); clock()->Advance(base::TimeDelta::FromDays(5)); EXPECT_TRUE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); // Record dismisses to place it under dismissal embargo. EXPECT_FALSE(autoblocker()->RecordDismissAndEmbargo( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_FALSE(autoblocker()->RecordDismissAndEmbargo( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_TRUE(autoblocker()->RecordDismissAndEmbargo( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); // Accelerate time to a point where the blacklist embargo should be expired // and check that dismissal embargo is still set. clock()->Advance(base::TimeDelta::FromDays(3)); EXPECT_TRUE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); } TEST_F(PermissionDecisionAutoBlockerUnitTest, TestSafeBrowsingTimeout) { @@ -445,11 +443,11 @@ SetSafeBrowsingDatabaseManagerAndTimeoutForTesting(db_manager, 0 /* timeout in ms */); - UpdateEmbargoedStatus(content::PermissionType::GEOLOCATION, url); + UpdateEmbargoedStatus(CONTENT_SETTINGS_TYPE_GEOLOCATION, url); EXPECT_TRUE(callback_was_run()); EXPECT_FALSE(last_embargoed_status()); EXPECT_FALSE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); histograms.ExpectUniqueSample("Permissions.AutoBlocker.SafeBrowsingResponse", SafeBrowsingResponse::TIMEOUT, 1); histograms.ExpectTotalCount( @@ -459,7 +457,7 @@ 2000 /* timeout in ms */); clock()->Advance(base::TimeDelta::FromDays(1)); - UpdateEmbargoedStatus(content::PermissionType::GEOLOCATION, url); + UpdateEmbargoedStatus(CONTENT_SETTINGS_TYPE_GEOLOCATION, url); EXPECT_TRUE(callback_was_run()); EXPECT_TRUE(last_embargoed_status()); histograms.ExpectTotalCount("Permissions.AutoBlocker.SafeBrowsingResponse", @@ -470,7 +468,7 @@ SafeBrowsingResponse::BLACKLISTED, 1); clock()->Advance(base::TimeDelta::FromDays(1)); EXPECT_TRUE( - autoblocker()->IsUnderEmbargo(content::PermissionType::GEOLOCATION, url)); + autoblocker()->IsUnderEmbargo(CONTENT_SETTINGS_TYPE_GEOLOCATION, url)); } // TODO(raymes): See crbug.com/681709. Remove after M60. @@ -486,7 +484,7 @@ base::DictionaryValue origin_dict; origin_dict.Set( - PermissionUtil::GetPermissionString(content::PermissionType::GEOLOCATION), + PermissionUtil::GetPermissionString(CONTENT_SETTINGS_TYPE_GEOLOCATION), permissions_dict.CreateDeepCopy()); map->SetWebsiteSettingDefaultScope( url, GURL(), CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT, @@ -494,9 +492,9 @@ // Nothing should be migrated yet, so the current values should be 0. EXPECT_EQ(0, autoblocker()->GetDismissCount( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(0, autoblocker()->GetIgnoreCount( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); // Trigger pref migration which happens at the creation of the // HostContentSettingsMap. @@ -509,9 +507,9 @@ // The values should now be migrated. EXPECT_EQ(100, autoblocker()->GetDismissCount( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(50, autoblocker()->GetIgnoreCount( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); // The old pref should be deleted. std::unique_ptr<base::DictionaryValue> old_dict = @@ -525,7 +523,7 @@ permissions_dict.SetInteger(GetIgnoreKey(), 99); origin_dict.Set( - PermissionUtil::GetPermissionString(content::PermissionType::GEOLOCATION), + PermissionUtil::GetPermissionString(CONTENT_SETTINGS_TYPE_GEOLOCATION), permissions_dict.CreateDeepCopy()); map->SetWebsiteSettingDefaultScope( url, GURL(), CONTENT_SETTINGS_TYPE_PROMPT_NO_DECISION_COUNT, @@ -540,9 +538,9 @@ } EXPECT_EQ(100, autoblocker()->GetDismissCount( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); EXPECT_EQ(50, autoblocker()->GetIgnoreCount( - url, content::PermissionType::GEOLOCATION)); + url, CONTENT_SETTINGS_TYPE_GEOLOCATION)); } // Test that a blacklisted permission should not be autoblocked if the database @@ -556,7 +554,7 @@ db_manager->BlacklistUrlPermissions(url, blacklisted_permissions); SetSafeBrowsingDatabaseManagerAndTimeoutForTesting(db_manager, 2000 /* timeout in ms */); - UpdateEmbargoedStatus(content::PermissionType::GEOLOCATION, url); + UpdateEmbargoedStatus(CONTENT_SETTINGS_TYPE_GEOLOCATION, url); EXPECT_TRUE(callback_was_run()); EXPECT_FALSE(last_embargoed_status()); } @@ -574,7 +572,7 @@ SetSafeBrowsingDatabaseManagerAndTimeoutForTesting(db_manager, 0 /* timeout in ms */); - UpdateEmbargoedStatus(content::PermissionType::NOTIFICATIONS, url); + UpdateEmbargoedStatus(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, url); EXPECT_FALSE(last_embargoed_status()); histograms.ExpectUniqueSample("Permissions.AutoBlocker.SafeBrowsingResponse", SafeBrowsingResponse::NOT_BLACKLISTED, 1);
diff --git a/chrome/browser/permissions/permission_dialog_delegate.cc b/chrome/browser/permissions/permission_dialog_delegate.cc index cbfde51..f7c006e 100644 --- a/chrome/browser/permissions/permission_dialog_delegate.cc +++ b/chrome/browser/permissions/permission_dialog_delegate.cc
@@ -40,7 +40,7 @@ // static void PermissionDialogDelegate::Create( content::WebContents* web_contents, - content::PermissionType type, + ContentSettingsType type, const GURL& requesting_frame, bool user_gesture, Profile* profile,
diff --git a/chrome/browser/permissions/permission_dialog_delegate.h b/chrome/browser/permissions/permission_dialog_delegate.h index 96a4347..f57ccd1 100644 --- a/chrome/browser/permissions/permission_dialog_delegate.h +++ b/chrome/browser/permissions/permission_dialog_delegate.h
@@ -11,7 +11,7 @@ #include "base/callback.h" #include "base/macros.h" #include "chrome/browser/permissions/permission_util.h" -#include "content/public/browser/permission_type.h" +#include "components/content_settings/core/common/content_settings_types.h" using base::android::JavaParamRef; using base::android::ScopedJavaLocalRef; @@ -41,7 +41,7 @@ // Creates a modal dialog for |type|. static void Create(content::WebContents* web_contents, - content::PermissionType type, + ContentSettingsType type, const GURL& requesting_frame, bool user_gesture, Profile* profile,
diff --git a/chrome/browser/permissions/permission_infobar_delegate.cc b/chrome/browser/permissions/permission_infobar_delegate.cc index 3d7ef82..1f4be38 100644 --- a/chrome/browser/permissions/permission_infobar_delegate.cc +++ b/chrome/browser/permissions/permission_infobar_delegate.cc
@@ -23,7 +23,7 @@ // static infobars::InfoBar* PermissionInfoBarDelegate::Create( InfoBarService* infobar_service, - content::PermissionType type, + ContentSettingsType type, const GURL& requesting_frame, bool user_gesture, Profile* profile, @@ -42,26 +42,26 @@ // static std::unique_ptr<PermissionInfoBarDelegate> PermissionInfoBarDelegate::CreateDelegate( - content::PermissionType type, + ContentSettingsType type, const GURL& requesting_frame, bool user_gesture, Profile* profile, const PermissionSetCallback& callback) { switch (type) { - case content::PermissionType::GEOLOCATION: + case CONTENT_SETTINGS_TYPE_GEOLOCATION: return std::unique_ptr<PermissionInfoBarDelegate>( new GeolocationInfoBarDelegateAndroid( requesting_frame, user_gesture, profile, callback)); - case content::PermissionType::NOTIFICATIONS: - case content::PermissionType::PUSH_MESSAGING: + case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: + case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING: return std::unique_ptr<PermissionInfoBarDelegate>( new NotificationPermissionInfoBarDelegate( type, requesting_frame, user_gesture, profile, callback)); - case content::PermissionType::MIDI_SYSEX: + case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: return std::unique_ptr<PermissionInfoBarDelegate>( new MidiPermissionInfoBarDelegateAndroid( requesting_frame, user_gesture, profile, callback)); - case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER: + case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER: return std::unique_ptr<PermissionInfoBarDelegate>( new ProtectedMediaIdentifierInfoBarDelegateAndroid( requesting_frame, user_gesture, profile, callback)); @@ -74,7 +74,7 @@ PermissionInfoBarDelegate::~PermissionInfoBarDelegate() { if (!action_taken_) { PermissionUmaUtil::PermissionIgnored( - permission_type_, + content_settings_type_, user_gesture_ ? PermissionRequestGestureType::GESTURE : PermissionRequestGestureType::NO_GESTURE, requesting_origin_, profile_); @@ -86,9 +86,9 @@ } bool PermissionInfoBarDelegate::ShouldShowPersistenceToggle() const { - return (permission_type_ == content::PermissionType::GEOLOCATION || - permission_type_ == content::PermissionType::AUDIO_CAPTURE || - permission_type_ == content::PermissionType::VIDEO_CAPTURE) && + return (content_settings_type_ == CONTENT_SETTINGS_TYPE_GEOLOCATION || + content_settings_type_ == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC || + content_settings_type_ == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA) && PermissionUtil::ShouldShowPersistenceToggle(); } @@ -97,7 +97,7 @@ if (ShouldShowPersistenceToggle()) { update_content_setting = persist_; PermissionUmaUtil::PermissionPromptAcceptedWithPersistenceToggle( - permission_type_, persist_); + content_settings_type_, persist_); } SetPermission(update_content_setting, GRANTED); @@ -109,7 +109,7 @@ if (ShouldShowPersistenceToggle()) { update_content_setting = persist_; PermissionUmaUtil::PermissionPromptDeniedWithPersistenceToggle( - permission_type_, persist_); + content_settings_type_, persist_); } SetPermission(update_content_setting, DENIED); @@ -136,13 +136,11 @@ PermissionInfoBarDelegate::PermissionInfoBarDelegate( const GURL& requesting_origin, - content::PermissionType permission_type, ContentSettingsType content_settings_type, bool user_gesture, Profile* profile, const PermissionSetCallback& callback) : requesting_origin_(requesting_origin), - permission_type_(permission_type), content_settings_type_(content_settings_type), profile_(profile), callback_(callback),
diff --git a/chrome/browser/permissions/permission_infobar_delegate.h b/chrome/browser/permissions/permission_infobar_delegate.h index 7b0f429d..9dfbf4b 100644 --- a/chrome/browser/permissions/permission_infobar_delegate.h +++ b/chrome/browser/permissions/permission_infobar_delegate.h
@@ -13,7 +13,6 @@ #include "chrome/browser/permissions/permission_util.h" #include "components/content_settings/core/common/content_settings_types.h" #include "components/infobars/core/confirm_infobar_delegate.h" -#include "content/public/browser/permission_type.h" #include "url/gurl.h" namespace infobars { @@ -41,14 +40,14 @@ // |infobar_service| and manages its own lifetime; callers must only use it // for calls to |infobar_service|. static infobars::InfoBar* Create(InfoBarService* infobar_service, - content::PermissionType type, + ContentSettingsType type, const GURL& requesting_frame, bool user_gesture, Profile* profile, const PermissionSetCallback& callback); static std::unique_ptr<PermissionInfoBarDelegate> CreateDelegate( - content::PermissionType type, + ContentSettingsType type, const GURL& requesting_frame, bool user_gesture, Profile* profile, @@ -77,7 +76,6 @@ protected: PermissionInfoBarDelegate(const GURL& requesting_origin, - content::PermissionType permission_type, ContentSettingsType content_settings_type, bool user_gesture, Profile* profile, @@ -92,7 +90,6 @@ void SetPermission(bool update_content_setting, PermissionAction decision); GURL requesting_origin_; - content::PermissionType permission_type_; ContentSettingsType content_settings_type_; Profile* const profile_; const PermissionSetCallback callback_;
diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc index de46664..e890aea 100644 --- a/chrome/browser/permissions/permission_manager.cc +++ b/chrome/browser/permissions/permission_manager.cc
@@ -4,8 +4,6 @@ #include "chrome/browser/permissions/permission_manager.h" -#include <stddef.h> - #include <memory> #include <utility> @@ -86,6 +84,7 @@ case PermissionType::MIDI_SYSEX: return CONTENT_SETTINGS_TYPE_MIDI_SYSEX; case PermissionType::PUSH_MESSAGING: + return CONTENT_SETTINGS_TYPE_PUSH_MESSAGING; case PermissionType::NOTIFICATIONS: return CONTENT_SETTINGS_TYPE_NOTIFICATIONS; case PermissionType::GEOLOCATION: @@ -146,13 +145,14 @@ // CONTENT_SETTING_DEFAULT is returned if the permission needs further handling. // This function should only be called when IsConstantPermission has returned // true for the PermissionType. -ContentSetting GetContentSettingForConstantPermission(PermissionType type) { +blink::mojom::PermissionStatus GetPermissionStatusForConstantPermission( + PermissionType type) { DCHECK(IsConstantPermission(type)); switch (type) { case PermissionType::MIDI: - return CONTENT_SETTING_ALLOW; + return PermissionStatus::GRANTED; default: - return CONTENT_SETTING_DEFAULT; + return PermissionStatus::DENIED; } } @@ -212,7 +212,7 @@ GURL requesting_origin; GURL embedding_origin; base::Callback<void(PermissionStatus)> callback; - ContentSetting current_value; + PermissionStatus current_value; }; // static @@ -223,39 +223,37 @@ PermissionManager::PermissionManager(Profile* profile) : profile_(profile), weak_ptr_factory_(this) { - permission_contexts_[PermissionType::MIDI_SYSEX] = + permission_contexts_[CONTENT_SETTINGS_TYPE_MIDI_SYSEX] = base::MakeUnique<MidiPermissionContext>(profile); - permission_contexts_[PermissionType::PUSH_MESSAGING] = + permission_contexts_[CONTENT_SETTINGS_TYPE_PUSH_MESSAGING] = base::MakeUnique<NotificationPermissionContext>( - profile, PermissionType::PUSH_MESSAGING); - permission_contexts_[PermissionType::NOTIFICATIONS] = + profile, CONTENT_SETTINGS_TYPE_PUSH_MESSAGING); + permission_contexts_[CONTENT_SETTINGS_TYPE_NOTIFICATIONS] = base::MakeUnique<NotificationPermissionContext>( - profile, PermissionType::NOTIFICATIONS); + profile, CONTENT_SETTINGS_TYPE_NOTIFICATIONS); #if !defined(OS_ANDROID) - permission_contexts_[PermissionType::GEOLOCATION] = + permission_contexts_[CONTENT_SETTINGS_TYPE_GEOLOCATION] = base::MakeUnique<GeolocationPermissionContext>(profile); #else - permission_contexts_[PermissionType::GEOLOCATION] = + permission_contexts_[CONTENT_SETTINGS_TYPE_GEOLOCATION] = base::MakeUnique<GeolocationPermissionContextAndroid>(profile); #endif #if defined(OS_CHROMEOS) || defined(OS_ANDROID) - permission_contexts_[PermissionType::PROTECTED_MEDIA_IDENTIFIER] = + permission_contexts_[CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER] = base::MakeUnique<ProtectedMediaIdentifierPermissionContext>(profile); #endif - permission_contexts_[PermissionType::DURABLE_STORAGE] = + permission_contexts_[CONTENT_SETTINGS_TYPE_DURABLE_STORAGE] = base::MakeUnique<DurableStoragePermissionContext>(profile); - permission_contexts_[PermissionType::AUDIO_CAPTURE] = + permission_contexts_[CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC] = base::MakeUnique<MediaStreamDevicePermissionContext>( - profile, content::PermissionType::AUDIO_CAPTURE, - CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC); - permission_contexts_[PermissionType::VIDEO_CAPTURE] = + profile, CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC); + permission_contexts_[CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA] = base::MakeUnique<MediaStreamDevicePermissionContext>( - profile, content::PermissionType::VIDEO_CAPTURE, - CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); - permission_contexts_[PermissionType::BACKGROUND_SYNC] = + profile, CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA); + permission_contexts_[CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC] = base::MakeUnique<BackgroundSyncPermissionContext>(profile); #if BUILDFLAG(ENABLE_PLUGINS) - permission_contexts_[PermissionType::FLASH] = + permission_contexts_[CONTENT_SETTINGS_TYPE_PLUGINS] = base::MakeUnique<FlashPermissionContext>(profile); #endif } @@ -267,6 +265,35 @@ } int PermissionManager::RequestPermission( + ContentSettingsType content_settings_type, + content::RenderFrameHost* render_frame_host, + const GURL& requesting_origin, + bool user_gesture, + const base::Callback<void(PermissionStatus)>& callback) { + // TODO(timloh): We should be operating on ContentSettingsType instead of + // converting these back to PermissionType. + PermissionType permission_type; + bool success = PermissionUtil::GetPermissionType(content_settings_type, + &permission_type); + DCHECK(success); + return RequestPermissions( + std::vector<PermissionType>(1, permission_type), render_frame_host, + requesting_origin, user_gesture, + base::Bind(&PermissionRequestResponseCallbackWrapper, callback)); +} + +PermissionStatus PermissionManager::GetPermissionStatus( + ContentSettingsType permission, + const GURL& requesting_origin, + const GURL& embedding_origin) { + PermissionContextBase* context = GetPermissionContext(permission); + return ContentSettingToPermissionStatus( + context->GetPermissionStatus(requesting_origin.GetOrigin(), + embedding_origin.GetOrigin()) + .content_setting); +} + +int PermissionManager::RequestPermission( PermissionType permission, content::RenderFrameHost* render_frame_host, const GURL& requesting_origin, @@ -306,16 +333,17 @@ const PermissionType permission = permissions[i]; if (IsConstantPermission(permission) || - !GetPermissionContext(permission)) { + !GetPermissionContext(PermissionTypeToContentSetting(permission))) { // Track permission request usages even for constant permissions. PermissionUmaUtil::PermissionRequested(permission, requesting_origin, embedding_origin, profile_); - OnPermissionsRequestResponseStatus(request_id, i, - GetPermissionStatus(permission, requesting_origin, embedding_origin)); + OnPermissionsRequestResponseStatus( + request_id, i, GetPermissionStatusForConstantPermission(permission)); continue; } - PermissionContextBase* context = GetPermissionContext(permission); + PermissionContextBase* context = + GetPermissionContext(PermissionTypeToContentSetting(permission)); context->RequestPermission( web_contents, request, requesting_origin, user_gesture, base::Bind(&ContentSettingToPermissionStatusCallbackWrapper, @@ -331,7 +359,7 @@ } PermissionContextBase* PermissionManager::GetPermissionContext( - PermissionType type) { + ContentSettingsType type) { const auto& it = permission_contexts_.find(type); return it == permission_contexts_.end() ? nullptr : it->second.get(); } @@ -364,7 +392,8 @@ pending_request->render_frame_id(), request_id); for (PermissionType permission : pending_request->permissions()) { - PermissionContextBase* context = GetPermissionContext(permission); + PermissionContextBase* context = + GetPermissionContext(PermissionTypeToContentSetting(permission)); if (!context) continue; context->CancelPermissionRequest(web_contents, request); @@ -376,7 +405,8 @@ const GURL& requesting_origin, const GURL& embedding_origin) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - PermissionContextBase* context = GetPermissionContext(permission); + PermissionContextBase* context = + GetPermissionContext(PermissionTypeToContentSetting(permission)); if (!context) return; @@ -389,8 +419,10 @@ const GURL& requesting_origin, const GURL& embedding_origin) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); - return ContentSettingToPermissionStatus(GetPermissionStatusInternal( - permission, requesting_origin, embedding_origin)); + if (IsConstantPermission(permission)) + return GetPermissionStatusForConstantPermission(permission); + return GetPermissionStatus(PermissionTypeToContentSetting(permission), + requesting_origin, embedding_origin); } void PermissionManager::RegisterPermissionUsage(PermissionType permission, @@ -423,8 +455,8 @@ subscription->embedding_origin = embedding_origin; subscription->callback = callback; - subscription->current_value = GetPermissionStatusInternal( - permission, requesting_origin, embedding_origin); + subscription->current_value = + GetPermissionStatus(permission, requesting_origin, embedding_origin); return subscriptions_.Add(std::move(subscription)); } @@ -440,7 +472,7 @@ } bool PermissionManager::IsPermissionKillSwitchOn( - content::PermissionType permission) { + ContentSettingsType permission) { DCHECK_CURRENTLY_ON(content::BrowserThread::UI); return GetPermissionContext(permission)->IsPermissionKillSwitchOn(); } @@ -470,7 +502,7 @@ !secondary_pattern.Matches(subscription->embedding_origin)) continue; - ContentSetting new_value = GetPermissionStatusInternal( + PermissionStatus new_value = GetPermissionStatus( subscription->permission, subscription->requesting_origin, subscription->embedding_origin); if (subscription->current_value == new_value) @@ -480,25 +512,9 @@ // Add the callback to |callbacks| which will be run after the loop to // prevent re-entrance issues. - callbacks.push_back( - base::Bind(subscription->callback, - ContentSettingToPermissionStatus(new_value))); + callbacks.push_back(base::Bind(subscription->callback, new_value)); } for (const auto& callback : callbacks) callback.Run(); } - -ContentSetting PermissionManager::GetPermissionStatusInternal( - PermissionType permission, - const GURL& requesting_origin, - const GURL& embedding_origin) { - if (IsConstantPermission(permission)) - return GetContentSettingForConstantPermission(permission); - - PermissionContextBase* context = GetPermissionContext(permission); - return context - ->GetPermissionStatus(requesting_origin.GetOrigin(), - embedding_origin.GetOrigin()) - .content_setting; -}
diff --git a/chrome/browser/permissions/permission_manager.h b/chrome/browser/permissions/permission_manager.h index bc7e040..ed7a264 100644 --- a/chrome/browser/permissions/permission_manager.h +++ b/chrome/browser/permissions/permission_manager.h
@@ -33,6 +33,21 @@ explicit PermissionManager(Profile* profile); ~PermissionManager() override; + // Callers from within chrome/ should use the methods which take the + // ContentSettingsType enum. The methods which take PermissionType values + // are for the content::PermissionManager overrides and shouldn't be used + // from chrome/. + int RequestPermission( + ContentSettingsType permission, + content::RenderFrameHost* render_frame_host, + const GURL& requesting_origin, + bool user_gesture, + const base::Callback<void(blink::mojom::PermissionStatus)>& callback); + blink::mojom::PermissionStatus GetPermissionStatus( + ContentSettingsType permission, + const GURL& requesting_origin, + const GURL& embedding_origin); + // content::PermissionManager implementation. int RequestPermission( content::PermissionType permission, @@ -71,7 +86,7 @@ // TODO(raymes): Rather than exposing this, expose a denial reason from // GetPermissionStatus so that callers can determine whether a permission is // denied due to the kill switch. - bool IsPermissionKillSwitchOn(content::PermissionType permission); + bool IsPermissionKillSwitchOn(ContentSettingsType); private: friend class GeolocationPermissionContextTests; @@ -82,7 +97,7 @@ struct Subscription; using SubscriptionsMap = IDMap<std::unique_ptr<Subscription>>; - PermissionContextBase* GetPermissionContext(content::PermissionType type); + PermissionContextBase* GetPermissionContext(ContentSettingsType type); // Called when a permission was decided for a given PendingRequest. The // PendingRequest is identified by its |request_id| and the permission is @@ -101,17 +116,13 @@ ContentSettingsType content_type, std::string resource_identifier) override; - ContentSetting GetPermissionStatusInternal(content::PermissionType permission, - const GURL& requesting_origin, - const GURL& embedding_origin); - Profile* profile_; PendingRequestsMap pending_requests_; SubscriptionsMap subscriptions_; - std::unordered_map<content::PermissionType, + std::unordered_map<ContentSettingsType, std::unique_ptr<PermissionContextBase>, - PermissionTypeHash> + ContentSettingsTypeHash> permission_contexts_; base::WeakPtrFactory<PermissionManager> weak_ptr_factory_;
diff --git a/chrome/browser/permissions/permission_queue_controller.cc b/chrome/browser/permissions/permission_queue_controller.cc index 6f12eb47..c56db61 100644 --- a/chrome/browser/permissions/permission_queue_controller.cc +++ b/chrome/browser/permissions/permission_queue_controller.cc
@@ -54,7 +54,7 @@ class PermissionQueueController::PendingInfobarRequest { public: - PendingInfobarRequest(content::PermissionType type, + PendingInfobarRequest(ContentSettingsType type, const PermissionRequestID& id, const GURL& requesting_frame, const GURL& embedder, @@ -85,7 +85,7 @@ void CreatePrompt(PermissionQueueController* controller, bool show_dialog); private: - content::PermissionType type_; + ContentSettingsType type_; PermissionRequestID id_; GURL requesting_frame_; GURL embedder_; @@ -99,7 +99,7 @@ }; PermissionQueueController::PendingInfobarRequest::PendingInfobarRequest( - content::PermissionType type, + ContentSettingsType type, const PermissionRequestID& id, const GURL& requesting_frame, const GURL& embedder, @@ -160,10 +160,8 @@ PermissionQueueController::PermissionQueueController( Profile* profile, - content::PermissionType permission_type, ContentSettingsType content_settings_type) : profile_(profile), - permission_type_(permission_type), content_settings_type_(content_settings_type), in_shutdown_(false) {} @@ -187,8 +185,8 @@ return; pending_infobar_requests_.push_back( - PendingInfobarRequest(permission_type_, id, requesting_frame, embedder, - user_gesture, profile_, callback)); + PendingInfobarRequest(content_settings_type_, id, requesting_frame, + embedder, user_gesture, profile_, callback)); if (!AlreadyShowingInfoBarForTab(id)) ShowQueuedInfoBarForTab(id); } @@ -220,12 +218,12 @@ DCHECK_CURRENTLY_ON(content::BrowserThread::UI); PermissionRequestType request_type = - PermissionUtil::GetRequestType(permission_type_); + PermissionUtil::GetRequestType(content_settings_type_); PermissionRequestGestureType gesture_type = PermissionUtil::GetGestureType(user_gesture); switch (decision) { case GRANTED: - PermissionUmaUtil::PermissionGranted(permission_type_, gesture_type, + PermissionUmaUtil::PermissionGranted(content_settings_type_, gesture_type, requesting_frame, profile_); PermissionUmaUtil::RecordPermissionPromptAccepted(request_type, gesture_type); @@ -233,7 +231,7 @@ PermissionEmbargoStatus::NOT_EMBARGOED); break; case DENIED: - PermissionUmaUtil::PermissionDenied(permission_type_, gesture_type, + PermissionUmaUtil::PermissionDenied(content_settings_type_, gesture_type, requesting_frame, profile_); PermissionUmaUtil::RecordPermissionPromptDenied(request_type, gesture_type); @@ -241,10 +239,11 @@ PermissionEmbargoStatus::NOT_EMBARGOED); break; case DISMISSED: - PermissionUmaUtil::PermissionDismissed(permission_type_, gesture_type, - requesting_frame, profile_); + PermissionUmaUtil::PermissionDismissed( + content_settings_type_, gesture_type, requesting_frame, profile_); if (PermissionDecisionAutoBlocker::GetForProfile(profile_) - ->RecordDismissAndEmbargo(requesting_frame, permission_type_)) { + ->RecordDismissAndEmbargo(requesting_frame, + content_settings_type_)) { PermissionUmaUtil::RecordPermissionEmbargoStatus( PermissionEmbargoStatus::REPEATED_DISMISSALS); } else { @@ -448,8 +447,13 @@ ContentSetting content_setting = (decision == GRANTED) ? CONTENT_SETTING_ALLOW : CONTENT_SETTING_BLOCK; + // TODO(timloh): Remove this logic when push and notification permissions + // are reconciled, see crbug.com/563297. + ContentSettingsType type_for_map = content_settings_type_; + if (type_for_map == CONTENT_SETTINGS_TYPE_PUSH_MESSAGING) + type_for_map = CONTENT_SETTINGS_TYPE_NOTIFICATIONS; HostContentSettingsMapFactory::GetForProfile(profile_) ->SetContentSettingDefaultScope( requesting_frame.GetOrigin(), embedder.GetOrigin(), - content_settings_type_, std::string(), content_setting); + type_for_map, std::string(), content_setting); }
diff --git a/chrome/browser/permissions/permission_queue_controller.h b/chrome/browser/permissions/permission_queue_controller.h index 1cecd22..ec73873 100644 --- a/chrome/browser/permissions/permission_queue_controller.h +++ b/chrome/browser/permissions/permission_queue_controller.h
@@ -12,7 +12,6 @@ #include "components/content_settings/core/common/content_settings_types.h" #include "content/public/browser/notification_observer.h" #include "content/public/browser/notification_registrar.h" -#include "content/public/browser/permission_type.h" class GURL; class PermissionRequestID; @@ -32,7 +31,6 @@ using PermissionDecidedCallback = base::Callback<void(ContentSetting)>; PermissionQueueController(Profile* profile, - content::PermissionType permission_type, ContentSettingsType content_settings_type); ~PermissionQueueController() override; @@ -94,7 +92,6 @@ content::NotificationRegistrar registrar_; Profile* const profile_; - content::PermissionType permission_type_; ContentSettingsType content_settings_type_; PendingInfobarRequests pending_infobar_requests_; bool in_shutdown_;
diff --git a/chrome/browser/permissions/permission_queue_controller_unittest.cc b/chrome/browser/permissions/permission_queue_controller_unittest.cc index f2b3a2db..f9ce02d 100644 --- a/chrome/browser/permissions/permission_queue_controller_unittest.cc +++ b/chrome/browser/permissions/permission_queue_controller_unittest.cc
@@ -12,7 +12,6 @@ #include "chrome/test/base/chrome_render_view_host_test_harness.h" #include "chrome/test/base/testing_profile.h" #include "components/content_settings/core/common/content_settings_types.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" #include "content/public/test/mock_render_process_host.h" @@ -67,7 +66,6 @@ ObservationCountingQueueController::ObservationCountingQueueController( Profile* profile) : PermissionQueueController(profile, - content::PermissionType::GEOLOCATION, CONTENT_SETTINGS_TYPE_GEOLOCATION), call_count_(0) {}
diff --git a/chrome/browser/permissions/permission_request.h b/chrome/browser/permissions/permission_request.h index 7ef6ebbd..f9f77f9 100644 --- a/chrome/browser/permissions/permission_request.h +++ b/chrome/browser/permissions/permission_request.h
@@ -8,7 +8,6 @@ #include "base/macros.h" #include "base/strings/string16.h" #include "components/content_settings/core/common/content_settings_types.h" -#include "content/public/browser/permission_type.h" #include "url/gurl.h" namespace gfx {
diff --git a/chrome/browser/permissions/permission_request_impl.cc b/chrome/browser/permissions/permission_request_impl.cc index ab91ab6..57556c1b 100644 --- a/chrome/browser/permissions/permission_request_impl.cc +++ b/chrome/browser/permissions/permission_request_impl.cc
@@ -21,13 +21,13 @@ PermissionRequestImpl::PermissionRequestImpl( const GURL& request_origin, - content::PermissionType permission_type, + ContentSettingsType content_settings_type, Profile* profile, bool has_gesture, const PermissionDecidedCallback& permission_decided_callback, const base::Closure delete_callback) : request_origin_(request_origin), - permission_type_(permission_type), + content_settings_type_(content_settings_type), profile_(profile), has_gesture_(has_gesture), permission_decided_callback_(permission_decided_callback), @@ -38,8 +38,8 @@ PermissionRequestImpl::~PermissionRequestImpl() { DCHECK(is_finished_); if (!action_taken_) { - PermissionUmaUtil::PermissionIgnored(permission_type_, GetGestureType(), - request_origin_, profile_); + PermissionUmaUtil::PermissionIgnored( + content_settings_type_, GetGestureType(), request_origin_, profile_); PermissionUmaUtil::RecordPermissionEmbargoStatus( PermissionEmbargoStatus::NOT_EMBARGOED); } @@ -47,35 +47,35 @@ PermissionRequest::IconId PermissionRequestImpl::GetIconId() const { #if defined(OS_ANDROID) - switch (permission_type_) { - case content::PermissionType::GEOLOCATION: + switch (content_settings_type_) { + case CONTENT_SETTINGS_TYPE_GEOLOCATION: return IDR_ANDROID_INFOBAR_GEOLOCATION; - case content::PermissionType::NOTIFICATIONS: - case content::PermissionType::PUSH_MESSAGING: + case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: + case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING: return IDR_ANDROID_INFOBAR_NOTIFICATIONS; - case content::PermissionType::MIDI_SYSEX: + case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: return IDR_ANDROID_INFOBAR_MIDI; - case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER: + case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER: return IDR_ANDROID_INFOBAR_PROTECTED_MEDIA_IDENTIFIER; default: NOTREACHED(); return IDR_ANDROID_INFOBAR_WARNING; } #else - switch (permission_type_) { - case content::PermissionType::GEOLOCATION: + switch (content_settings_type_) { + case CONTENT_SETTINGS_TYPE_GEOLOCATION: return ui::kLocationOnIcon; - case content::PermissionType::NOTIFICATIONS: - case content::PermissionType::PUSH_MESSAGING: + case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: + case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING: return ui::kNotificationsIcon; #if defined(OS_CHROMEOS) // TODO(xhwang): fix this icon, see crrev.com/863263007 - case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER: + case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER: return kProductIcon; #endif - case content::PermissionType::MIDI_SYSEX: + case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: return ui::kMidiIcon; - case content::PermissionType::FLASH: + case CONTENT_SETTINGS_TYPE_PLUGINS: return ui::kExtensionIcon; default: NOTREACHED(); @@ -86,23 +86,23 @@ base::string16 PermissionRequestImpl::GetMessageTextFragment() const { int message_id; - switch (permission_type_) { - case content::PermissionType::GEOLOCATION: + switch (content_settings_type_) { + case CONTENT_SETTINGS_TYPE_GEOLOCATION: message_id = IDS_GEOLOCATION_INFOBAR_PERMISSION_FRAGMENT; break; - case content::PermissionType::NOTIFICATIONS: - case content::PermissionType::PUSH_MESSAGING: + case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: + case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING: message_id = IDS_NOTIFICATION_PERMISSIONS_FRAGMENT; break; - case content::PermissionType::MIDI_SYSEX: + case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: message_id = IDS_MIDI_SYSEX_PERMISSION_FRAGMENT; break; #if defined(OS_CHROMEOS) - case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER: + case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER: message_id = IDS_PROTECTED_MEDIA_IDENTIFIER_PERMISSION_FRAGMENT; break; #endif - case content::PermissionType::FLASH: + case CONTENT_SETTINGS_TYPE_PLUGINS: message_id = IDS_FLASH_PERMISSION_FRAGMENT; break; default: @@ -137,37 +137,16 @@ } bool PermissionRequestImpl::ShouldShowPersistenceToggle() const { - return (permission_type_ == content::PermissionType::GEOLOCATION) && + return (content_settings_type_ == CONTENT_SETTINGS_TYPE_GEOLOCATION) && PermissionUtil::ShouldShowPersistenceToggle(); } PermissionRequestType PermissionRequestImpl::GetPermissionRequestType() const { - return PermissionUtil::GetRequestType(permission_type_); + return PermissionUtil::GetRequestType(content_settings_type_); } PermissionRequestGestureType PermissionRequestImpl::GetGestureType() const { return PermissionUtil::GetGestureType(has_gesture_); } - -ContentSettingsType PermissionRequestImpl::GetContentSettingsType() const { - switch (permission_type_) { - case content::PermissionType::GEOLOCATION: - return CONTENT_SETTINGS_TYPE_GEOLOCATION; - case content::PermissionType::PUSH_MESSAGING: - case content::PermissionType::NOTIFICATIONS: - return CONTENT_SETTINGS_TYPE_NOTIFICATIONS; - case content::PermissionType::MIDI_SYSEX: - return CONTENT_SETTINGS_TYPE_MIDI_SYSEX; -#if defined(OS_CHROMEOS) - case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER: - return CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER; -#endif - case content::PermissionType::FLASH: - return CONTENT_SETTINGS_TYPE_PLUGINS; - default: - NOTREACHED(); - return CONTENT_SETTINGS_TYPE_DEFAULT; - } -}
diff --git a/chrome/browser/permissions/permission_request_impl.h b/chrome/browser/permissions/permission_request_impl.h index c4a315b..ea3eec0 100644 --- a/chrome/browser/permissions/permission_request_impl.h +++ b/chrome/browser/permissions/permission_request_impl.h
@@ -10,7 +10,7 @@ #include "chrome/browser/permissions/permission_request.h" #include "chrome/browser/permissions/permission_request_id.h" #include "components/content_settings/core/common/content_settings.h" -#include "content/public/browser/permission_type.h" +#include "components/content_settings/core/common/content_settings_types.h" class GURL; class Profile; @@ -24,7 +24,7 @@ PermissionRequestImpl( const GURL& request_origin, - content::PermissionType permission_type, + ContentSettingsType content_settings_type, Profile* profile, bool has_gesture, const PermissionDecidedCallback& permission_decided_callback, @@ -49,10 +49,9 @@ bool ShouldShowPersistenceToggle() const override; PermissionRequestType GetPermissionRequestType() const override; PermissionRequestGestureType GetGestureType() const override; - ContentSettingsType GetContentSettingsType() const override; GURL request_origin_; - content::PermissionType permission_type_; + ContentSettingsType content_settings_type_; Profile* profile_; bool has_gesture_;
diff --git a/chrome/browser/permissions/permission_request_manager_browsertest.cc b/chrome/browser/permissions/permission_request_manager_browsertest.cc index 2cbfc79..4e74b17 100644 --- a/chrome/browser/permissions/permission_request_manager_browsertest.cc +++ b/chrome/browser/permissions/permission_request_manager_browsertest.cc
@@ -14,8 +14,8 @@ #include "chrome/browser/ui/website_settings/mock_permission_prompt_factory.h" #include "chrome/test/base/in_process_browser_test.h" #include "chrome/test/base/ui_test_utils.h" +#include "components/content_settings/core/common/content_settings_types.h" #include "components/variations/variations_associated_data.h" -#include "content/public/browser/permission_type.h" #include "content/public/test/browser_test_utils.h" #include "content/public/test/test_utils.h" #include "net/test/embedded_test_server/embedded_test_server.h" @@ -55,9 +55,9 @@ return mock_permission_prompt_factory_.get(); } - void EnableKillSwitch(content::PermissionType permission_type) { + void EnableKillSwitch(ContentSettingsType content_settings_type) { std::map<std::string, std::string> params; - params[PermissionUtil::GetPermissionString(permission_type)] = + params[PermissionUtil::GetPermissionString(content_settings_type)] = kPermissionsKillSwitchBlockedValue; variations::AssociateVariationParams( kPermissionsKillSwitchFieldStudy, kPermissionsKillSwitchTestGroup, @@ -192,7 +192,7 @@ embedded_test_server()->GetURL("/permissions/killswitch_tester.html")); // Now enable the geolocation killswitch. - EnableKillSwitch(content::PermissionType::GEOLOCATION); + EnableKillSwitch(CONTENT_SETTINGS_TYPE_GEOLOCATION); content::WebContents* web_contents = browser()->tab_strip_model()->GetActiveWebContents(); @@ -228,7 +228,7 @@ embedded_test_server()->GetURL("/permissions/killswitch_tester.html")); // Now enable the notifications killswitch. - EnableKillSwitch(content::PermissionType::NOTIFICATIONS); + EnableKillSwitch(CONTENT_SETTINGS_TYPE_NOTIFICATIONS); content::WebContents* web_contents = browser()->tab_strip_model()->GetActiveWebContents();
diff --git a/chrome/browser/permissions/permission_request_manager_test_api.cc b/chrome/browser/permissions/permission_request_manager_test_api.cc index d2e1bd4..7144ddb 100644 --- a/chrome/browser/permissions/permission_request_manager_test_api.cc +++ b/chrome/browser/permissions/permission_request_manager_test_api.cc
@@ -18,7 +18,7 @@ // handle all destruction paths. class TestPermisisonRequestOwner { public: - TestPermisisonRequestOwner(Profile* profile, content::PermissionType type) { + TestPermisisonRequestOwner(Profile* profile, ContentSettingsType type) { bool user_gesture = true; auto decided = [](bool, ContentSetting) {}; request_ = base::MakeUnique<PermissionRequestImpl>( @@ -50,7 +50,7 @@ void PermissionRequestManagerTestApi::AddSimpleRequest( Profile* profile, - content::PermissionType type) { + ContentSettingsType type) { TestPermisisonRequestOwner* request_owner = new TestPermisisonRequestOwner(profile, type); manager_->AddRequest(request_owner->request());
diff --git a/chrome/browser/permissions/permission_request_manager_test_api.h b/chrome/browser/permissions/permission_request_manager_test_api.h index ed68c301..c651605 100644 --- a/chrome/browser/permissions/permission_request_manager_test_api.h +++ b/chrome/browser/permissions/permission_request_manager_test_api.h
@@ -7,7 +7,7 @@ #include "base/macros.h" #include "chrome/browser/permissions/permission_request_manager.h" -#include "content/public/browser/permission_type.h" +#include "components/content_settings/core/common/content_settings_types.h" class Browser; class Profile; @@ -24,10 +24,10 @@ PermissionRequestManager* manager() { return manager_; } // Add a "simple" permission request. One that uses PermissionRequestImpl, - // such as for content::PermissionType including MIDI_SYSEX, PUSH_MESSAGING, - // NOTIFICATIONS, GEOLOCATON, or FLASH. This can be called multiple times + // such as for ContentSettingsType including MIDI_SYSEX, PUSH_MESSAGING, + // NOTIFICATIONS, GEOLOCATON, or PLUGINS. This can be called multiple times // before a call to manager()->DisplayPendingRequests(). - void AddSimpleRequest(Profile* profile, content::PermissionType type); + void AddSimpleRequest(Profile* profile, ContentSettingsType type); // Return the bubble window for the permission prompt or null if there is no // prompt currently showing.
diff --git a/chrome/browser/permissions/permission_uma_util.cc b/chrome/browser/permissions/permission_uma_util.cc index 4a40418..1f6f48d 100644 --- a/chrome/browser/permissions/permission_uma_util.cc +++ b/chrome/browser/permissions/permission_uma_util.cc
@@ -63,7 +63,7 @@ namespace { -const std::string GetRapporMetric(PermissionType permission, +const std::string GetRapporMetric(ContentSettingsType permission, PermissionAction action) { std::string action_str; switch (action) { @@ -188,7 +188,7 @@ // PermissionReportInfo ------------------------------------------------------- PermissionReportInfo::PermissionReportInfo( const GURL& origin, - PermissionType permission, + ContentSettingsType permission, PermissionAction action, PermissionSourceUI source_ui, PermissionRequestGestureType gesture_type, @@ -267,8 +267,19 @@ profile); } +void PermissionUmaUtil::PermissionRequested(ContentSettingsType content_type, + const GURL& requesting_origin, + const GURL& embedding_origin, + Profile* profile) { + PermissionType permission; + bool success = PermissionUtil::GetPermissionType(content_type, &permission); + DCHECK(success); + RecordPermissionRequest(permission, requesting_origin, embedding_origin, + profile); +} + void PermissionUmaUtil::PermissionGranted( - PermissionType permission, + ContentSettingsType permission, PermissionRequestGestureType gesture_type, const GURL& requesting_origin, Profile* profile) { @@ -285,7 +296,7 @@ } void PermissionUmaUtil::PermissionDenied( - PermissionType permission, + ContentSettingsType permission, PermissionRequestGestureType gesture_type, const GURL& requesting_origin, Profile* profile) { @@ -302,7 +313,7 @@ } void PermissionUmaUtil::PermissionDismissed( - PermissionType permission, + ContentSettingsType permission, PermissionRequestGestureType gesture_type, const GURL& requesting_origin, Profile* profile) { @@ -319,7 +330,7 @@ } void PermissionUmaUtil::PermissionIgnored( - PermissionType permission, + ContentSettingsType permission, PermissionRequestGestureType gesture_type, const GURL& requesting_origin, Profile* profile) { @@ -340,16 +351,16 @@ autoblocker->RecordIgnore(requesting_origin, permission); } -void PermissionUmaUtil::PermissionRevoked(PermissionType permission, +void PermissionUmaUtil::PermissionRevoked(ContentSettingsType permission, PermissionSourceUI source_ui, const GURL& revoked_origin, Profile* profile) { // TODO(tsergeant): Expand metrics definitions for revocation to include all // permissions. - if (permission == PermissionType::NOTIFICATIONS || - permission == PermissionType::GEOLOCATION || - permission == PermissionType::AUDIO_CAPTURE || - permission == PermissionType::VIDEO_CAPTURE) { + if (permission == CONTENT_SETTINGS_TYPE_NOTIFICATIONS || + permission == CONTENT_SETTINGS_TYPE_GEOLOCATION || + permission == CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC || + permission == CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA) { // An unknown gesture type is passed in since gesture type is only // applicable in prompt UIs where revocations are not possible. RecordPermissionAction(permission, REVOKED, source_ui, @@ -475,14 +486,12 @@ } void PermissionUmaUtil::RecordPermissionPromptPriorCount( - content::PermissionType permission, + ContentSettingsType permission, const std::string& prefix, int count) { - // The user is not prompted for these permissions, thus there is no prompt + // The user is not prompted for this permissions, thus there is no prompt // event to record a prior count for. - DCHECK_NE(PermissionType::MIDI, permission); - DCHECK_NE(PermissionType::BACKGROUND_SYNC, permission); - DCHECK_NE(PermissionType::NUM, permission); + DCHECK_NE(CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC, permission); // Expand UMA_HISTOGRAM_COUNTS_100 so that we can use a dynamically suffixed // histogram name. @@ -493,54 +502,52 @@ } void PermissionUmaUtil::PermissionPromptAcceptedWithPersistenceToggle( - content::PermissionType permission, + ContentSettingsType permission, bool toggle_enabled) { switch (permission) { - case PermissionType::GEOLOCATION: + case CONTENT_SETTINGS_TYPE_GEOLOCATION: UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Accepted.Persisted.Geolocation", toggle_enabled); break; - case PermissionType::NOTIFICATIONS: + case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: UMA_HISTOGRAM_BOOLEAN( "Permissions.Prompt.Accepted.Persisted.Notifications", toggle_enabled); break; - case PermissionType::MIDI_SYSEX: + case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Accepted.Persisted.MidiSysEx", toggle_enabled); break; - case PermissionType::PUSH_MESSAGING: + case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING: UMA_HISTOGRAM_BOOLEAN( "Permissions.Prompt.Accepted.Persisted.PushMessaging", toggle_enabled); break; - case PermissionType::PROTECTED_MEDIA_IDENTIFIER: + case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER: UMA_HISTOGRAM_BOOLEAN( "Permissions.Prompt.Accepted.Persisted.ProtectedMedia", toggle_enabled); break; - case PermissionType::DURABLE_STORAGE: + case CONTENT_SETTINGS_TYPE_DURABLE_STORAGE: UMA_HISTOGRAM_BOOLEAN( "Permissions.Prompt.Accepted.Persisted.DurableStorage", toggle_enabled); break; - case PermissionType::AUDIO_CAPTURE: + case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC: UMA_HISTOGRAM_BOOLEAN( "Permissions.Prompt.Accepted.Persisted.AudioCapture", toggle_enabled); break; - case PermissionType::VIDEO_CAPTURE: + case CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA: UMA_HISTOGRAM_BOOLEAN( "Permissions.Prompt.Accepted.Persisted.VideoCapture", toggle_enabled); break; - case PermissionType::FLASH: + case CONTENT_SETTINGS_TYPE_PLUGINS: UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Accepted.Persisted.Flash", toggle_enabled); break; // The user is not prompted for these permissions, thus there is no accept // recorded for them. - case PermissionType::MIDI: - case PermissionType::BACKGROUND_SYNC: - case PermissionType::NUM: + default: NOTREACHED() << "PERMISSION " << PermissionUtil::GetPermissionString(permission) << " not accounted for"; @@ -548,50 +555,48 @@ } void PermissionUmaUtil::PermissionPromptDeniedWithPersistenceToggle( - content::PermissionType permission, + ContentSettingsType permission, bool toggle_enabled) { switch (permission) { - case PermissionType::GEOLOCATION: + case CONTENT_SETTINGS_TYPE_GEOLOCATION: UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Denied.Persisted.Geolocation", toggle_enabled); break; - case PermissionType::NOTIFICATIONS: + case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Denied.Persisted.Notifications", toggle_enabled); break; - case PermissionType::MIDI_SYSEX: + case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Denied.Persisted.MidiSysEx", toggle_enabled); break; - case PermissionType::PUSH_MESSAGING: + case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING: UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Denied.Persisted.PushMessaging", toggle_enabled); break; - case PermissionType::PROTECTED_MEDIA_IDENTIFIER: + case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER: UMA_HISTOGRAM_BOOLEAN( "Permissions.Prompt.Denied.Persisted.ProtectedMedia", toggle_enabled); break; - case PermissionType::DURABLE_STORAGE: + case CONTENT_SETTINGS_TYPE_DURABLE_STORAGE: UMA_HISTOGRAM_BOOLEAN( "Permissions.Prompt.Denied.Persisted.DurableStorage", toggle_enabled); break; - case PermissionType::AUDIO_CAPTURE: + case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC: UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Denied.Persisted.AudioCapture", toggle_enabled); break; - case PermissionType::VIDEO_CAPTURE: + case CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA: UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Denied.Persisted.VideoCapture", toggle_enabled); break; - case PermissionType::FLASH: + case CONTENT_SETTINGS_TYPE_PLUGINS: UMA_HISTOGRAM_BOOLEAN("Permissions.Prompt.Denied.Persisted.Flash", toggle_enabled); break; // The user is not prompted for these permissions, thus there is no deny // recorded for them. - case PermissionType::MIDI: - case PermissionType::BACKGROUND_SYNC: - case PermissionType::NUM: + default: NOTREACHED() << "PERMISSION " << PermissionUtil::GetPermissionString(permission) << " not accounted for"; @@ -637,7 +642,7 @@ } void PermissionUmaUtil::RecordPermissionAction( - PermissionType permission, + ContentSettingsType permission, PermissionAction action, PermissionSourceUI source_ui, PermissionRequestGestureType gesture_type, @@ -660,62 +665,60 @@ bool secure_origin = content::IsOriginSecure(requesting_origin); switch (permission) { - case PermissionType::GEOLOCATION: + case CONTENT_SETTINGS_TYPE_GEOLOCATION: PERMISSION_ACTION_UMA(secure_origin, "Permissions.Action.Geolocation", "Permissions.Action.SecureOrigin.Geolocation", "Permissions.Action.InsecureOrigin.Geolocation", action); break; - case PermissionType::NOTIFICATIONS: + case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: PERMISSION_ACTION_UMA(secure_origin, "Permissions.Action.Notifications", "Permissions.Action.SecureOrigin.Notifications", "Permissions.Action.InsecureOrigin.Notifications", action); break; - case PermissionType::MIDI_SYSEX: + case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: PERMISSION_ACTION_UMA(secure_origin, "Permissions.Action.MidiSysEx", "Permissions.Action.SecureOrigin.MidiSysEx", "Permissions.Action.InsecureOrigin.MidiSysEx", action); break; - case PermissionType::PUSH_MESSAGING: + case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING: PERMISSION_ACTION_UMA(secure_origin, "Permissions.Action.PushMessaging", "Permissions.Action.SecureOrigin.PushMessaging", "Permissions.Action.InsecureOrigin.PushMessaging", action); break; - case PermissionType::PROTECTED_MEDIA_IDENTIFIER: + case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER: PERMISSION_ACTION_UMA(secure_origin, "Permissions.Action.ProtectedMedia", "Permissions.Action.SecureOrigin.ProtectedMedia", "Permissions.Action.InsecureOrigin.ProtectedMedia", action); break; - case PermissionType::DURABLE_STORAGE: + case CONTENT_SETTINGS_TYPE_DURABLE_STORAGE: PERMISSION_ACTION_UMA(secure_origin, "Permissions.Action.DurableStorage", "Permissions.Action.SecureOrigin.DurableStorage", "Permissions.Action.InsecureOrigin.DurableStorage", action); break; - case PermissionType::AUDIO_CAPTURE: + case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC: // Media permissions are disabled on insecure origins, so there's no // need to record metrics for secure/insecue. UMA_HISTOGRAM_ENUMERATION("Permissions.Action.AudioCapture", action, PERMISSION_ACTION_NUM); break; - case PermissionType::VIDEO_CAPTURE: + case CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA: UMA_HISTOGRAM_ENUMERATION("Permissions.Action.VideoCapture", action, PERMISSION_ACTION_NUM); break; - case PermissionType::FLASH: + case CONTENT_SETTINGS_TYPE_PLUGINS: PERMISSION_ACTION_UMA(secure_origin, "Permissions.Action.Flash", "Permissions.Action.SecureOrigin.Flash", "Permissions.Action.InsecureOrigin.Flash", action); break; // The user is not prompted for these permissions, thus there is no // permission action recorded for them. - case PermissionType::MIDI: - case PermissionType::BACKGROUND_SYNC: - case PermissionType::NUM: + default: NOTREACHED() << "PERMISSION " << PermissionUtil::GetPermissionString(permission) << " not accounted for";
diff --git a/chrome/browser/permissions/permission_uma_util.h b/chrome/browser/permissions/permission_uma_util.h index e486c84..f1efe4c 100644 --- a/chrome/browser/permissions/permission_uma_util.h +++ b/chrome/browser/permissions/permission_uma_util.h
@@ -18,10 +18,6 @@ class PermissionRequest; class Profile; -namespace content { -enum class PermissionType; -} // namespace content - // This should stay in sync with the SourceUI enum in the permission report // protobuf (src/chrome/common/safe_browsing/permission_report.proto). enum class PermissionSourceUI { @@ -56,7 +52,7 @@ struct PermissionReportInfo { PermissionReportInfo( const GURL& origin, - content::PermissionType permission, + ContentSettingsType permission, PermissionAction action, PermissionSourceUI source_ui, PermissionRequestGestureType gesture_type, @@ -67,7 +63,7 @@ PermissionReportInfo(const PermissionReportInfo& other); GURL origin; - content::PermissionType permission; + ContentSettingsType permission; PermissionAction action; PermissionSourceUI source_ui; PermissionRequestGestureType gesture_type; @@ -110,27 +106,33 @@ static const char kPermissionsPromptIgnoredPriorDismissCountPrefix[]; static const char kPermissionsPromptIgnoredPriorIgnoreCountPrefix[]; + // TODO(timloh): Remove this content::PermissionType overload when we add MIDI + // to ContentSettingsType. static void PermissionRequested(content::PermissionType permission, const GURL& requesting_origin, const GURL& embedding_origin, Profile* profile); - static void PermissionGranted(content::PermissionType permission, + static void PermissionRequested(ContentSettingsType permission, + const GURL& requesting_origin, + const GURL& embedding_origin, + Profile* profile); + static void PermissionGranted(ContentSettingsType permission, PermissionRequestGestureType gesture_type, const GURL& requesting_origin, Profile* profile); - static void PermissionDenied(content::PermissionType permission, + static void PermissionDenied(ContentSettingsType permission, PermissionRequestGestureType gesture_type, const GURL& requesting_origin, Profile* profile); - static void PermissionDismissed(content::PermissionType permission, + static void PermissionDismissed(ContentSettingsType permission, PermissionRequestGestureType gesture_type, const GURL& requesting_origin, Profile* profile); - static void PermissionIgnored(content::PermissionType permission, + static void PermissionIgnored(ContentSettingsType permission, PermissionRequestGestureType gesture_type, const GURL& requesting_origin, Profile* profile); - static void PermissionRevoked(content::PermissionType permission, + static void PermissionRevoked(ContentSettingsType permission, PermissionSourceUI source_ui, const GURL& revoked_origin, Profile* profile); @@ -184,11 +186,11 @@ // persistence toggle. Records whether the toggle was enabled (persist) or // disabled (don't persist). static void PermissionPromptAcceptedWithPersistenceToggle( - content::PermissionType permission, + ContentSettingsType permission, bool toggle_enabled); static void PermissionPromptDeniedWithPersistenceToggle( - content::PermissionType permission, + ContentSettingsType permission, bool toggle_enabled); private: @@ -196,7 +198,7 @@ static bool IsOptedIntoPermissionActionReporting(Profile* profile); - static void RecordPermissionAction(content::PermissionType permission, + static void RecordPermissionAction(ContentSettingsType permission, PermissionAction action, PermissionSourceUI source_ui, PermissionRequestGestureType gesture_type, @@ -206,7 +208,7 @@ // Records |count| total prior actions for a prompt of type |permission| // for a single origin using |prefix| for the metric. static void RecordPermissionPromptPriorCount( - content::PermissionType permission, + ContentSettingsType permission, const std::string& prefix, int count);
diff --git a/chrome/browser/permissions/permission_util.cc b/chrome/browser/permissions/permission_util.cc index 2e8d5075..955b2f6 100644 --- a/chrome/browser/permissions/permission_util.cc +++ b/chrome/browser/permissions/permission_util.cc
@@ -15,92 +15,92 @@ using content::PermissionType; -std::size_t PermissionTypeHash::operator()( - const content::PermissionType& type) const { - return static_cast<size_t>(type); +std::string PermissionUtil::GetPermissionString( + ContentSettingsType content_type) { + PermissionType permission_type; + bool success = PermissionUtil::GetPermissionType( + content_type, &permission_type); + DCHECK(success); + return GetPermissionString(permission_type); } // The returned strings must match the RAPPOR metrics in rappor.xml, // and any Field Trial configs for the Permissions kill switch e.g. // Permissions.Action.Geolocation etc.. -std::string PermissionUtil::GetPermissionString( - content::PermissionType permission) { +std::string PermissionUtil::GetPermissionString(PermissionType permission) { switch (permission) { - case content::PermissionType::GEOLOCATION: + case PermissionType::GEOLOCATION: return "Geolocation"; - case content::PermissionType::NOTIFICATIONS: + case PermissionType::NOTIFICATIONS: return "Notifications"; - case content::PermissionType::MIDI_SYSEX: + case PermissionType::MIDI_SYSEX: return "MidiSysEx"; - case content::PermissionType::PUSH_MESSAGING: + case PermissionType::PUSH_MESSAGING: return "PushMessaging"; - case content::PermissionType::DURABLE_STORAGE: + case PermissionType::DURABLE_STORAGE: return "DurableStorage"; - case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER: + case PermissionType::PROTECTED_MEDIA_IDENTIFIER: return "ProtectedMediaIdentifier"; - case content::PermissionType::AUDIO_CAPTURE: + case PermissionType::AUDIO_CAPTURE: return "AudioCapture"; - case content::PermissionType::VIDEO_CAPTURE: + case PermissionType::VIDEO_CAPTURE: return "VideoCapture"; - case content::PermissionType::MIDI: + case PermissionType::MIDI: return "Midi"; - case content::PermissionType::BACKGROUND_SYNC: + case PermissionType::BACKGROUND_SYNC: return "BackgroundSync"; - case content::PermissionType::FLASH: + case PermissionType::FLASH: return "Flash"; - case content::PermissionType::NUM: + default: break; } NOTREACHED(); return std::string(); } -std::string PermissionUtil::ConvertPermissionTypeToSafeBrowsingName( - const content::PermissionType& permission_type) { +std::string PermissionUtil::ConvertContentSettingsTypeToSafeBrowsingName( + ContentSettingsType permission_type) { switch (permission_type) { - case content::PermissionType::GEOLOCATION: + case CONTENT_SETTINGS_TYPE_GEOLOCATION: return "GEOLOCATION"; - case content::PermissionType::NOTIFICATIONS: + case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: return "NOTIFICATIONS"; - case content::PermissionType::MIDI_SYSEX: + case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: return "MIDI_SYSEX"; - case content::PermissionType::PUSH_MESSAGING: + case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING: return "PUSH_MESSAGING"; - case content::PermissionType::DURABLE_STORAGE: + case CONTENT_SETTINGS_TYPE_DURABLE_STORAGE: return "DURABLE_STORAGE"; - case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER: + case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER: return "PROTECTED_MEDIA_IDENTIFIER"; - case content::PermissionType::AUDIO_CAPTURE: + case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC: return "AUDIO_CAPTURE"; - case content::PermissionType::VIDEO_CAPTURE: + case CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA: return "VIDEO_CAPTURE"; - case content::PermissionType::MIDI: - return "MIDI"; - case content::PermissionType::BACKGROUND_SYNC: + case CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC: return "BACKGROUND_SYNC"; - case content::PermissionType::FLASH: + case CONTENT_SETTINGS_TYPE_PLUGINS: return "FLASH"; - case content::PermissionType::NUM: + default: break; } NOTREACHED(); return std::string(); } -PermissionRequestType PermissionUtil::GetRequestType( - content::PermissionType type) { +PermissionRequestType PermissionUtil::GetRequestType(ContentSettingsType type) { switch (type) { - case content::PermissionType::GEOLOCATION: + case CONTENT_SETTINGS_TYPE_GEOLOCATION: return PermissionRequestType::PERMISSION_GEOLOCATION; - case content::PermissionType::NOTIFICATIONS: + case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: return PermissionRequestType::PERMISSION_NOTIFICATIONS; - case content::PermissionType::MIDI_SYSEX: + case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: return PermissionRequestType::PERMISSION_MIDI_SYSEX; - case content::PermissionType::PUSH_MESSAGING: + case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING: return PermissionRequestType::PERMISSION_PUSH_MESSAGING; - case content::PermissionType::PROTECTED_MEDIA_IDENTIFIER: + case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER: return PermissionRequestType::PERMISSION_PROTECTED_MEDIA_IDENTIFIER; - case content::PermissionType::FLASH: + case CONTENT_SETTINGS_TYPE_PLUGINS: return PermissionRequestType::PERMISSION_FLASH; default: NOTREACHED(); @@ -119,6 +119,8 @@ *out = PermissionType::GEOLOCATION; } else if (type == CONTENT_SETTINGS_TYPE_NOTIFICATIONS) { *out = PermissionType::NOTIFICATIONS; + } else if (type == CONTENT_SETTINGS_TYPE_PUSH_MESSAGING) { + *out = PermissionType::PUSH_MESSAGING; } else if (type == CONTENT_SETTINGS_TYPE_MIDI_SYSEX) { *out = PermissionType::MIDI_SYSEX; } else if (type == CONTENT_SETTINGS_TYPE_DURABLE_STORAGE) { @@ -129,6 +131,8 @@ *out = PermissionType::AUDIO_CAPTURE; } else if (type == CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC) { *out = PermissionType::BACKGROUND_SYNC; + } else if (type == CONTENT_SETTINGS_TYPE_PLUGINS) { + *out = PermissionType::FLASH; #if defined(OS_ANDROID) || defined(OS_CHROMEOS) } else if (type == CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER) { *out = PermissionType::PROTECTED_MEDIA_IDENTIFIER; @@ -192,7 +196,7 @@ if (final_content_setting != CONTENT_SETTING_ALLOW) { PermissionType permission_type; if (PermissionUtil::GetPermissionType(content_type_, &permission_type)) { - PermissionUmaUtil::PermissionRevoked(permission_type, source_ui_, + PermissionUmaUtil::PermissionRevoked(content_type_, source_ui_, primary_url_, profile_); } }
diff --git a/chrome/browser/permissions/permission_util.h b/chrome/browser/permissions/permission_util.h index 2ad0c7ed..b8faf941 100644 --- a/chrome/browser/permissions/permission_util.h +++ b/chrome/browser/permissions/permission_util.h
@@ -35,34 +35,32 @@ PERMISSION_ACTION_NUM, }; -struct PermissionTypeHash { - std::size_t operator()(const content::PermissionType& type) const; -}; - // A utility class for permissions. class PermissionUtil { public: - // Returns the permission string for the given PermissionType. - static std::string GetPermissionString(content::PermissionType permission); + // Returns the permission string for the given permission. + static std::string GetPermissionString(ContentSettingsType); + // TODO(timloh): Remove this content::PermissionType overload when we add MIDI + // to ContentSettingsType. + static std::string GetPermissionString(content::PermissionType); - // Return the stringified version of the PermissionType enum that Safe - // Browsing uses for the API Blacklist. - static std::string ConvertPermissionTypeToSafeBrowsingName( - const content::PermissionType& permission_type); + // Return the stringified version of the ContentSettingsType enum that + // Safe Browsing uses for the API Blacklist. + static std::string ConvertContentSettingsTypeToSafeBrowsingName( + ContentSettingsType permission); // Returns the request type corresponding to a permission type. - static PermissionRequestType GetRequestType(content::PermissionType type); + static PermissionRequestType GetRequestType(ContentSettingsType permission); // Returns the gesture type corresponding to whether a permission request is // made with or without a user gesture. static PermissionRequestGestureType GetGestureType(bool user_gesture); - // Limited conversion of ContentSettingsType to PermissionType. Intended for - // recording Permission UMA metrics from areas of the codebase which have not - // yet been converted to PermissionType. Returns true if the conversion was - // performed. - // TODO(tsergeant): Remove this function once callsites operate on - // PermissionType directly. + // Limited conversion of ContentSettingsType to PermissionType. Returns true + // if the conversion was performed. + // TODO(timloh): Try to remove this function. Mainly we need to work out how + // to remove the usage in PermissionUmaUtil, which uses PermissionType as a + // histogram value to count permission request metrics. static bool GetPermissionType(ContentSettingsType type, content::PermissionType* out);
diff --git a/chrome/browser/plugins/flash_download_interception.cc b/chrome/browser/plugins/flash_download_interception.cc index f46a1e06..aa59db3d 100644 --- a/chrome/browser/plugins/flash_download_interception.cc +++ b/chrome/browser/plugins/flash_download_interception.cc
@@ -13,11 +13,11 @@ #include "chrome/browser/plugins/plugins_field_trial.h" #include "chrome/browser/profiles/profile.h" #include "chrome/common/chrome_features.h" +#include "components/content_settings/core/common/content_settings_types.h" #include "components/navigation_interception/intercept_navigation_throttle.h" #include "components/navigation_interception/navigation_params.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/navigation_handle.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/web_contents.h" #include "third_party/WebKit/public/platform/modules/permissions/permission_status.mojom.h" #include "third_party/re2/src/re2/re2.h" @@ -67,7 +67,7 @@ if (flash_setting == CONTENT_SETTING_DETECT_IMPORTANT_CONTENT) { PermissionManager* manager = PermissionManager::Get(profile); manager->RequestPermission( - content::PermissionType::FLASH, web_contents->GetMainFrame(), + CONTENT_SETTINGS_TYPE_PLUGINS, web_contents->GetMainFrame(), web_contents->GetLastCommittedURL(), true, base::Bind(&DoNothing)); } else if (flash_setting == CONTENT_SETTING_BLOCK) { TabSpecificContentSettings::FromWebContents(web_contents)
diff --git a/chrome/browser/plugins/flash_permission_context.cc b/chrome/browser/plugins/flash_permission_context.cc index 7e7eb93f..0794b45 100644 --- a/chrome/browser/plugins/flash_permission_context.cc +++ b/chrome/browser/plugins/flash_permission_context.cc
@@ -32,7 +32,6 @@ FlashPermissionContext::FlashPermissionContext(Profile* profile) : PermissionContextBase(profile, - content::PermissionType::FLASH, CONTENT_SETTINGS_TYPE_PLUGINS) {} FlashPermissionContext::~FlashPermissionContext() {}
diff --git a/chrome/browser/plugins/flash_temporary_permission_tracker_unittest.cc b/chrome/browser/plugins/flash_temporary_permission_tracker_unittest.cc index b1fe835e..b3e01f8d 100644 --- a/chrome/browser/plugins/flash_temporary_permission_tracker_unittest.cc +++ b/chrome/browser/plugins/flash_temporary_permission_tracker_unittest.cc
@@ -5,7 +5,6 @@ #include "chrome/browser/plugins/flash_temporary_permission_tracker.h" #include "chrome/test/base/chrome_render_view_host_test_harness.h" #include "chrome/test/base/testing_profile.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/web_contents.h" #include "content/public/test/test_renderer_host.h"
diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.cc b/chrome/browser/push_messaging/push_messaging_service_impl.cc index fbc0c0e..f495134 100644 --- a/chrome/browser/push_messaging/push_messaging_service_impl.cc +++ b/chrome/browser/push_messaging/push_messaging_service_impl.cc
@@ -45,7 +45,6 @@ #include "components/rappor/public/rappor_utils.h" #include "components/rappor/rappor_service_impl.h" #include "content/public/browser/browser_context.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/render_frame_host.h" #include "content/public/browser/service_worker_context.h" #include "content/public/browser/storage_partition.h" @@ -474,8 +473,8 @@ } // Push does not allow permission requests from iframes. - profile_->GetPermissionManager()->RequestPermission( - content::PermissionType::PUSH_MESSAGING, web_contents->GetMainFrame(), + PermissionManager::Get(profile_)->RequestPermission( + CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, web_contents->GetMainFrame(), requesting_origin, true /* user_gesture */, base::Bind(&PushMessagingServiceImpl::DoSubscribe, weak_factory_.GetWeakPtr(), app_identifier, options, @@ -520,8 +519,8 @@ // Because the Push API is tied to Service Workers, many usages of the API // won't have an embedding origin at all. Only consider the requesting // |origin| when checking whether permission to use the API has been granted. - return ToPushPermission(profile_->GetPermissionManager()->GetPermissionStatus( - content::PermissionType::PUSH_MESSAGING, origin, origin)); + return ToPushPermission(PermissionManager::Get(profile_)->GetPermissionStatus( + CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, origin, origin)); } bool PushMessagingServiceImpl::SupportNonVisibleMessages() {
diff --git a/chrome/browser/push_messaging/push_messaging_service_impl.h b/chrome/browser/push_messaging/push_messaging_service_impl.h index 50416f94..920f44e8 100644 --- a/chrome/browser/push_messaging/push_messaging_service_impl.h +++ b/chrome/browser/push_messaging/push_messaging_service_impl.h
@@ -20,6 +20,7 @@ #include "chrome/common/features.h" #include "components/content_settings/core/browser/content_settings_observer.h" #include "components/content_settings/core/common/content_settings.h" +#include "components/content_settings/core/common/content_settings_types.h" #include "components/gcm_driver/common/gcm_messages.h" #include "components/gcm_driver/gcm_app_handler.h" #include "components/gcm_driver/gcm_client.h"
diff --git a/chrome/browser/safe_browsing/permission_reporter.cc b/chrome/browser/safe_browsing/permission_reporter.cc index 8356864..6af846e6 100644 --- a/chrome/browser/safe_browsing/permission_reporter.cc +++ b/chrome/browser/safe_browsing/permission_reporter.cc
@@ -12,11 +12,8 @@ #include "chrome/browser/permissions/permission_request.h" #include "chrome/common/safe_browsing/permission_report.pb.h" #include "components/variations/active_field_trials.h" -#include "content/public/browser/permission_type.h" #include "net/url_request/report_sender.h" -using content::PermissionType; - namespace safe_browsing { namespace { @@ -28,31 +25,29 @@ const int kMaximumReportsPerOriginPerPermissionPerMinute = 5; PermissionReport::PermissionType PermissionTypeForReport( - PermissionType permission) { + ContentSettingsType permission) { switch (permission) { - case PermissionType::MIDI_SYSEX: + case CONTENT_SETTINGS_TYPE_MIDI_SYSEX: return PermissionReport::MIDI_SYSEX; - case PermissionType::PUSH_MESSAGING: + case CONTENT_SETTINGS_TYPE_PUSH_MESSAGING: return PermissionReport::PUSH_MESSAGING; - case PermissionType::NOTIFICATIONS: + case CONTENT_SETTINGS_TYPE_NOTIFICATIONS: return PermissionReport::NOTIFICATIONS; - case PermissionType::GEOLOCATION: + case CONTENT_SETTINGS_TYPE_GEOLOCATION: return PermissionReport::GEOLOCATION; - case PermissionType::PROTECTED_MEDIA_IDENTIFIER: + case CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER: return PermissionReport::PROTECTED_MEDIA_IDENTIFIER; - case PermissionType::MIDI: - return PermissionReport::MIDI; - case PermissionType::DURABLE_STORAGE: + case CONTENT_SETTINGS_TYPE_DURABLE_STORAGE: return PermissionReport::DURABLE_STORAGE; - case PermissionType::AUDIO_CAPTURE: + case CONTENT_SETTINGS_TYPE_MEDIASTREAM_MIC: return PermissionReport::AUDIO_CAPTURE; - case PermissionType::VIDEO_CAPTURE: + case CONTENT_SETTINGS_TYPE_MEDIASTREAM_CAMERA: return PermissionReport::VIDEO_CAPTURE; - case PermissionType::BACKGROUND_SYNC: + case CONTENT_SETTINGS_TYPE_BACKGROUND_SYNC: return PermissionReport::BACKGROUND_SYNC; - case PermissionType::FLASH: + case CONTENT_SETTINGS_TYPE_PLUGINS: return PermissionReport::FLASH; - case PermissionType::NUM: + default: break; } @@ -211,7 +206,7 @@ } bool PermissionReporter::IsReportThresholdExceeded( - content::PermissionType permission, + ContentSettingsType permission, const GURL& origin) { std::queue<base::Time>& log = report_logs_[{permission, origin}]; base::Time current_time = clock_->Now();
diff --git a/chrome/browser/safe_browsing/permission_reporter.h b/chrome/browser/safe_browsing/permission_reporter.h index 7fe213ba..e6ae69f 100644 --- a/chrome/browser/safe_browsing/permission_reporter.h +++ b/chrome/browser/safe_browsing/permission_reporter.h
@@ -11,6 +11,7 @@ #include "base/time/time.h" #include "chrome/browser/permissions/permission_uma_util.h" +#include "components/content_settings/core/common/content_settings_types.h" #include "url/gurl.h" namespace base { @@ -27,7 +28,7 @@ struct PermissionAndOrigin { bool operator==(const PermissionAndOrigin& other) const; - content::PermissionType permission; + ContentSettingsType permission; GURL origin; }; @@ -71,7 +72,7 @@ // Returns false if the number of reports sent in the last one minute per // origin per permission is under a threshold, otherwise true. - bool IsReportThresholdExceeded(content::PermissionType permission, + bool IsReportThresholdExceeded(ContentSettingsType permission, const GURL& origin); std::unique_ptr<net::ReportSender> permission_report_sender_;
diff --git a/chrome/browser/safe_browsing/permission_reporter_unittest.cc b/chrome/browser/safe_browsing/permission_reporter_unittest.cc index 3910ea8..fd4996d3 100644 --- a/chrome/browser/safe_browsing/permission_reporter_unittest.cc +++ b/chrome/browser/safe_browsing/permission_reporter_unittest.cc
@@ -13,11 +13,8 @@ #include "chrome/browser/safe_browsing/mock_permission_report_sender.h" #include "chrome/common/safe_browsing/permission_report.pb.h" #include "components/variations/active_field_trials.h" -#include "content/public/browser/permission_type.h" #include "testing/gtest/include/gtest/gtest.h" -using content::PermissionType; - namespace safe_browsing { namespace { @@ -31,8 +28,10 @@ const char kDummyOriginOne[] = "http://example.test/"; const char kDummyOriginTwo[] = "http://example2.test/"; -const PermissionType kDummyPermissionOne = PermissionType::GEOLOCATION; -const PermissionType kDummyPermissionTwo = PermissionType::NOTIFICATIONS; +const ContentSettingsType kDummyPermissionOne = + CONTENT_SETTINGS_TYPE_GEOLOCATION; +const ContentSettingsType kDummyPermissionTwo = + CONTENT_SETTINGS_TYPE_NOTIFICATIONS; const PermissionAction kDummyAction = GRANTED; const PermissionSourceUI kDummySourceUI = PermissionSourceUI::PROMPT; const PermissionRequestGestureType kDummyGestureType = @@ -58,7 +57,7 @@ }; PermissionReportInfo BuildDummyReportInfo(const char* requesting_origin, - PermissionType permission) { + ContentSettingsType permission) { PermissionReportInfo info(GURL(requesting_origin), permission, kDummyAction, kDummySourceUI, kDummyGestureType, kDummyPersistDecision, kDummyNumPriorDismissals, kDummyNumPriorIgnores);
diff --git a/chrome/browser/safe_browsing/ping_manager.h b/chrome/browser/safe_browsing/ping_manager.h index 8f5e1dd..676fedf5 100644 --- a/chrome/browser/safe_browsing/ping_manager.h +++ b/chrome/browser/safe_browsing/ping_manager.h
@@ -18,7 +18,6 @@ #include "chrome/browser/safe_browsing/protocol_manager_helper.h" #include "components/safe_browsing_db/hit_report.h" #include "components/safe_browsing_db/util.h" -#include "content/public/browser/permission_type.h" #include "net/log/net_log_with_source.h" #include "net/url_request/url_fetcher_delegate.h" #include "url/gurl.h"
diff --git a/chrome/browser/storage/durable_storage_permission_context.cc b/chrome/browser/storage/durable_storage_permission_context.cc index 97cf41c..c6fd62c 100644 --- a/chrome/browser/storage/durable_storage_permission_context.cc +++ b/chrome/browser/storage/durable_storage_permission_context.cc
@@ -20,7 +20,6 @@ #include "components/content_settings/core/browser/website_settings_registry.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/child_process_security_policy.h" -#include "content/public/browser/permission_type.h" #include "content/public/common/origin_util.h" #include "net/base/registry_controlled_domains/registry_controlled_domain.h" #include "url/gurl.h" @@ -30,7 +29,6 @@ DurableStoragePermissionContext::DurableStoragePermissionContext( Profile* profile) : PermissionContextBase(profile, - content::PermissionType::DURABLE_STORAGE, CONTENT_SETTINGS_TYPE_DURABLE_STORAGE) {} void DurableStoragePermissionContext::DecidePermission(
diff --git a/chrome/browser/ui/cocoa/website_settings/permission_bubble_cocoa_interactive_uitest.mm b/chrome/browser/ui/cocoa/website_settings/permission_bubble_cocoa_interactive_uitest.mm index 045db28..856036f 100644 --- a/chrome/browser/ui/cocoa/website_settings/permission_bubble_cocoa_interactive_uitest.mm +++ b/chrome/browser/ui/cocoa/website_settings/permission_bubble_cocoa_interactive_uitest.mm
@@ -79,7 +79,7 @@ EXPECT_TRUE(test_api_->manager()); test_api_->AddSimpleRequest(browser()->profile(), - content::PermissionType::GEOLOCATION); + CONTENT_SETTINGS_TYPE_GEOLOCATION); EXPECT_TRUE([browser()->window()->GetNativeWindow() isKeyWindow]); test_api_->manager()->DisplayPendingRequests();
diff --git a/chrome/browser/ui/input_method/input_method_engine_base.cc b/chrome/browser/ui/input_method/input_method_engine_base.cc index e28670bd..b030117 100644 --- a/chrome/browser/ui/input_method/input_method_engine_base.cc +++ b/chrome/browser/ui/input_method/input_method_engine_base.cc
@@ -362,6 +362,11 @@ // commitText while the extension is handling key event. handling_key_event_ = true; + if (key_event.IsCommandDown()) { + callback.Run(false); + return; + } + KeyboardEvent ext_event; GetExtensionKeyboardEventFromKeyEvent(key_event, &ext_event);
diff --git a/chrome/browser/ui/website_settings/website_settings.cc b/chrome/browser/ui/website_settings/website_settings.cc index 74add62..a8549dd 100644 --- a/chrome/browser/ui/website_settings/website_settings.cc +++ b/chrome/browser/ui/website_settings/website_settings.cc
@@ -56,7 +56,6 @@ #include "components/strings/grit/components_strings.h" #include "components/url_formatter/elide_url.h" #include "content/public/browser/browser_thread.h" -#include "content/public/browser/permission_type.h" #include "content/public/browser/user_metrics.h" #include "content/public/common/content_switches.h" #include "content/public/common/url_constants.h"
diff --git a/chrome/browser/ui/website_settings/website_settings_ui.h b/chrome/browser/ui/website_settings/website_settings_ui.h index a656ae57..5689d538 100644 --- a/chrome/browser/ui/website_settings/website_settings_ui.h +++ b/chrome/browser/ui/website_settings/website_settings_ui.h
@@ -13,7 +13,6 @@ #include "chrome/browser/ui/website_settings/website_settings.h" #include "components/content_settings/core/common/content_settings.h" #include "components/content_settings/core/common/content_settings_types.h" -#include "content/public/browser/permission_type.h" #include "ui/gfx/native_widget_types.h" class Profile;
diff --git a/components/content_settings/core/common/content_settings_types.h b/components/content_settings/core/common/content_settings_types.h index dd251805..236cee90 100644 --- a/components/content_settings/core/common/content_settings_types.h +++ b/components/content_settings/core/common/content_settings_types.h
@@ -5,6 +5,8 @@ #ifndef COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_TYPES_H_ #define COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_TYPES_H_ +#include <cstddef> + #include "build/build_config.h" // A particular type of content to care about. We give the user various types @@ -48,8 +50,19 @@ CONTENT_SETTINGS_TYPE_PERMISSION_AUTOBLOCKER_DATA, CONTENT_SETTINGS_TYPE_SUBRESOURCE_FILTER, + // This is only here temporarily and will be removed when we further unify + // it with notifications, see crbug.com/563297. No prefs data is stored for + // this content type, we instead share values with NOTIFICATIONS. + CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, + // WARNING: This enum is going to be removed soon. Do not depend on NUM_TYPES. CONTENT_SETTINGS_NUM_TYPES_DO_NOT_USE, }; +struct ContentSettingsTypeHash { + std::size_t operator()(ContentSettingsType type) const { + return static_cast<std::size_t>(type); + } +}; + #endif // COMPONENTS_CONTENT_SETTINGS_CORE_COMMON_CONTENT_SETTINGS_TYPES_H_
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountManagerHelper.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountManagerHelper.java index 0e378e3..0d71fa4 100644 --- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountManagerHelper.java +++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/AccountManagerHelper.java
@@ -4,16 +4,12 @@ package org.chromium.components.signin; -import android.Manifest; import android.accounts.Account; import android.accounts.AuthenticatorDescription; import android.app.Activity; import android.content.Context; -import android.content.pm.PackageManager; import android.os.AsyncTask; -import android.os.Process; -import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.Callback; import org.chromium.base.Log; import org.chromium.base.VisibleForTesting; @@ -316,12 +312,6 @@ }); } - public boolean hasGetAccountsPermission() { - return ApiCompatibilityUtils.checkPermission(mApplicationContext, - Manifest.permission.GET_ACCOUNTS, Process.myPid(), Process.myUid()) - == PackageManager.PERMISSION_GRANTED; - } - /** * Invalidates the old token (if non-null/non-empty) and asynchronously generates a new one. *
diff --git a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java index 347cb0c..2700cf05 100644 --- a/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java +++ b/components/signin/core/browser/android/java/src/org/chromium/components/signin/SystemAccountManagerDelegate.java
@@ -4,6 +4,7 @@ package org.chromium.components.signin; +import android.Manifest; import android.accounts.Account; import android.accounts.AccountManager; import android.accounts.AccountManagerCallback; @@ -13,14 +14,17 @@ import android.accounts.OperationCanceledException; import android.app.Activity; import android.content.Context; +import android.content.pm.PackageManager; import android.os.AsyncTask; import android.os.Bundle; +import android.os.Process; import android.os.SystemClock; import com.google.android.gms.auth.GoogleAuthException; import com.google.android.gms.auth.GoogleAuthUtil; import com.google.android.gms.auth.GooglePlayServicesAvailabilityException; +import org.chromium.base.ApiCompatibilityUtils; import org.chromium.base.Callback; import org.chromium.base.Log; import org.chromium.base.ThreadUtils; @@ -188,6 +192,8 @@ } protected boolean hasGetAccountsPermission() { - return AccountManagerHelper.get(mApplicationContext).hasGetAccountsPermission(); + return ApiCompatibilityUtils.checkPermission(mApplicationContext, + Manifest.permission.GET_ACCOUNTS, Process.myPid(), Process.myUid()) + == PackageManager.PERMISSION_GRANTED; } }
diff --git a/gin/isolate_holder.cc b/gin/isolate_holder.cc index 637b488..caea27e 100644 --- a/gin/isolate_holder.cc +++ b/gin/isolate_holder.cc
@@ -34,9 +34,7 @@ IsolateHolder::IsolateHolder( scoped_refptr<base::SingleThreadTaskRunner> task_runner, AccessMode access_mode) - : IsolateHolder(std::move(task_runner), - AccessMode::kSingleThread, - kAllowAtomicsWait) {} + : IsolateHolder(std::move(task_runner), access_mode, kAllowAtomicsWait) {} IsolateHolder::IsolateHolder( scoped_refptr<base::SingleThreadTaskRunner> task_runner,
diff --git a/ios/chrome/browser/content_suggestions/content_suggestions_category_wrapper.h b/ios/chrome/browser/content_suggestions/content_suggestions_category_wrapper.h index 51f41dac..c7e052b 100644 --- a/ios/chrome/browser/content_suggestions/content_suggestions_category_wrapper.h +++ b/ios/chrome/browser/content_suggestions/content_suggestions_category_wrapper.h
@@ -12,10 +12,15 @@ // Objective-C wrapper for ntp_snippets::Category. @interface ContentSuggestionsCategoryWrapper : NSObject<NSCopying> ++ (ContentSuggestionsCategoryWrapper*)wrapperWithCategory: + (ntp_snippets::Category)category; + - (instancetype)initWithCategory:(ntp_snippets::Category)category NS_DESIGNATED_INITIALIZER; + - (instancetype)init NS_UNAVAILABLE; +// The category wrapped by this object. - (ntp_snippets::Category)category; @end
diff --git a/ios/chrome/browser/content_suggestions/content_suggestions_category_wrapper.mm b/ios/chrome/browser/content_suggestions/content_suggestions_category_wrapper.mm index cc342d5..22678c8 100644 --- a/ios/chrome/browser/content_suggestions/content_suggestions_category_wrapper.mm +++ b/ios/chrome/browser/content_suggestions/content_suggestions_category_wrapper.mm
@@ -18,6 +18,11 @@ @implementation ContentSuggestionsCategoryWrapper ++ (ContentSuggestionsCategoryWrapper*)wrapperWithCategory: + (ntp_snippets::Category)category { + return [[ContentSuggestionsCategoryWrapper alloc] initWithCategory:category]; +} + @synthesize categoryID = _categoryID; - (instancetype)initWithCategory:(ntp_snippets::Category)category { @@ -46,7 +51,7 @@ ContentSuggestionsCategoryWrapper* other = base::mac::ObjCCastStrict<ContentSuggestionsCategoryWrapper>(object); - return self.category == other.category; + return [self category] == [other category]; } - (NSUInteger)hash { @@ -57,7 +62,7 @@ - (id)copyWithZone:(nullable NSZone*)zone { ContentSuggestionsCategoryWrapper* copy = - [[[self class] allocWithZone:zone] initWithCategory:self.category]; + [[[self class] allocWithZone:zone] initWithCategory:[self category]]; return copy; }
diff --git a/ios/chrome/browser/content_suggestions/content_suggestions_mediator.mm b/ios/chrome/browser/content_suggestions/content_suggestions_mediator.mm index c87b1631..71ffec5 100644 --- a/ios/chrome/browser/content_suggestions/content_suggestions_mediator.mm +++ b/ios/chrome/browser/content_suggestions/content_suggestions_mediator.mm
@@ -4,17 +4,83 @@ #import "ios/chrome/browser/content_suggestions/content_suggestions_mediator.h" +#include "base/mac/bind_objc_block.h" #include "base/memory/ptr_util.h" +#include "base/optional.h" +#include "base/strings/sys_string_conversions.h" #include "components/ntp_snippets/category.h" #include "components/ntp_snippets/content_suggestion.h" +#import "ios/chrome/browser/content_suggestions/content_suggestions_category_wrapper.h" #import "ios/chrome/browser/content_suggestions/content_suggestions_service_bridge_observer.h" #import "ios/chrome/browser/ui/content_suggestions/content_suggestion.h" #import "ios/chrome/browser/ui/content_suggestions/content_suggestions_data_sink.h" +#import "ios/chrome/browser/ui/content_suggestions/content_suggestions_item.h" +#import "ios/chrome/browser/ui/content_suggestions/content_suggestions_section_information.h" +#include "ui/gfx/image/image.h" #if !defined(__has_feature) || !__has_feature(objc_arc) #error "This file requires ARC support." #endif +namespace { + +// Returns the Type for this |category|. +ContentSuggestionType TypeForCategory(ntp_snippets::Category category) { + // For now, only Article is a relevant type. + return ContentSuggestionTypeArticle; +} + +// Returns the section ID for this |category|. +ContentSuggestionsSectionID SectionIDForCategory( + ntp_snippets::Category category) { + if (category.IsKnownCategory(ntp_snippets::KnownCategories::BOOKMARKS)) + return ContentSuggestionsSectionBookmarks; + if (category.IsKnownCategory(ntp_snippets::KnownCategories::ARTICLES)) + return ContentSuggestionsSectionArticles; + + return ContentSuggestionsSectionUnknown; +} + +// Returns the section layout corresponding to the category |layout|. +ContentSuggestionsSectionLayout SectionLayoutForLayout( + ntp_snippets::ContentSuggestionsCardLayout layout) { + // For now, only cards are relevant. + return ContentSuggestionsSectionLayoutCard; +} + +// Converts a ntp_snippets::ContentSuggestion to an Objective-C +// ContentSuggestion. +ContentSuggestion* ConvertContentSuggestion( + const ntp_snippets::ContentSuggestion& contentSuggestion) { + ContentSuggestion* suggestion = [[ContentSuggestion alloc] init]; + suggestion.title = base::SysUTF16ToNSString(contentSuggestion.title()); + suggestion.text = base::SysUTF16ToNSString(contentSuggestion.snippet_text()); + suggestion.url = contentSuggestion.url(); + + return suggestion; +} + +// Returns a SectionInformation for a |category|, filled with the +// |categoryInfo|. +ContentSuggestionsSectionInformation* SectionInformationFromCategoryInfo( + const base::Optional<ntp_snippets::CategoryInfo>& categoryInfo, + const ntp_snippets::Category& category) { + ContentSuggestionsSectionInformation* sectionInfo = + [[ContentSuggestionsSectionInformation alloc] + initWithSectionID:SectionIDForCategory(category)]; + if (categoryInfo) { + sectionInfo.layout = SectionLayoutForLayout(categoryInfo->card_layout()); + if (categoryInfo->show_if_empty()) { + // TODO(crbug.com/686728): Creates an item to display information when the + // section is empty. + } + sectionInfo.title = base::SysUTF16ToNSString(categoryInfo->title()); + } + return sectionInfo; +} + +} // namespace + @interface ContentSuggestionsMediator ()<ContentSuggestionsServiceObserver> { // Bridge for this class to become an observer of a ContentSuggestionsService. std::unique_ptr<ContentSuggestionsServiceBridge> _suggestionBridge; @@ -22,15 +88,19 @@ @property(nonatomic, assign) ntp_snippets::ContentSuggestionsService* contentService; +@property(nonatomic, strong, nonnull) + NSMutableDictionary<ContentSuggestionsCategoryWrapper*, + ContentSuggestionsSectionInformation*>* + sectionInformationByCategory; // Converts the data in |category| to ContentSuggestion and adds them to the // |contentArray|. - (void)addContentInCategory:(ntp_snippets::Category&)category toArray:(NSMutableArray<ContentSuggestion*>*)contentArray; -// Converts the |contentsuggestion| to a ContentSuggestion. -- (ContentSuggestion*)convertContentSuggestion: - (const ntp_snippets::ContentSuggestion&)contentsuggestion; +// Adds the section information for |category| in +// self.sectionInformationByCategory. +- (void)addSectionInformationForCategory:(ntp_snippets::Category)category; @end @@ -38,6 +108,7 @@ @synthesize contentService = _contentService; @synthesize dataSink = _dataSink; +@synthesize sectionInformationByCategory = _sectionInformationByCategory; - (instancetype)initWithContentService: (ntp_snippets::ContentSuggestionsService*)contentService { @@ -46,6 +117,7 @@ _suggestionBridge = base::MakeUnique<ContentSuggestionsServiceBridge>(self, contentService); _contentService = contentService; + _sectionInformationByCategory = [[NSMutableDictionary alloc] init]; } return self; } @@ -57,6 +129,14 @@ self.contentService->GetCategories(); NSMutableArray<ContentSuggestion*>* dataHolders = [NSMutableArray array]; for (auto& category : categories) { + if (self.contentService->GetCategoryStatus(category) != + ntp_snippets::CategoryStatus::AVAILABLE) { + continue; + } + if (!self.sectionInformationByCategory[ + [ContentSuggestionsCategoryWrapper wrapperWithCategory:category]]) { + [self addSectionInformationForCategory:category]; + } [self addContentInCategory:category toArray:dataHolders]; } return dataHolders; @@ -100,14 +180,28 @@ toArray:(NSMutableArray<ContentSuggestion*>*)contentArray { const std::vector<ntp_snippets::ContentSuggestion>& suggestions = self.contentService->GetSuggestionsForCategory(category); + ContentSuggestionsCategoryWrapper* categoryWrapper = + [[ContentSuggestionsCategoryWrapper alloc] initWithCategory:category]; for (auto& contentSuggestion : suggestions) { - [contentArray addObject:[self convertContentSuggestion:contentSuggestion]]; + ContentSuggestion* suggestion = ConvertContentSuggestion(contentSuggestion); + suggestion.type = TypeForCategory(category); + suggestion.section = self.sectionInformationByCategory[categoryWrapper]; + + // TODO(crbug.com/686728): fetch the image. + + [contentArray addObject:suggestion]; } } -- (ContentSuggestion*)convertContentSuggestion: - (const ntp_snippets::ContentSuggestion&)contentsuggestion { - return [[ContentSuggestion alloc] init]; +- (void)addSectionInformationForCategory:(ntp_snippets::Category)category { + base::Optional<ntp_snippets::CategoryInfo> categoryInfo = + self.contentService->GetCategoryInfo(category); + + ContentSuggestionsSectionInformation* sectionInfo = + SectionInformationFromCategoryInfo(categoryInfo, category); + + self.sectionInformationByCategory[[ContentSuggestionsCategoryWrapper + wrapperWithCategory:category]] = sectionInfo; } @end
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestion.h b/ios/chrome/browser/ui/content_suggestions/content_suggestion.h index 68bcf1b..518958eb 100644 --- a/ios/chrome/browser/ui/content_suggestions/content_suggestion.h +++ b/ios/chrome/browser/ui/content_suggestions/content_suggestion.h
@@ -7,11 +7,32 @@ #import <UIKit/UIKit.h> -// Data for a suggestions item, compatible with Objective-C. +#include "url/gurl.h" + +@class ContentSuggestionsSectionInformation; + +// Enum defining the type of a ContentSuggestions. +typedef NS_ENUM(NSInteger, ContentSuggestionType) { + ContentSuggestionTypeArticle +}; + +// Data for a suggestions item, compatible with Objective-C. Mostly acts as a +// wrapper for ntp_snippets::ContentSuggestion. @interface ContentSuggestion : NSObject -@property(nonatomic, copy) NSString* title; -@property(nonatomic, strong) UIImage* image; +// Title of the suggestion. +@property(nonatomic, copy, nullable) NSString* title; +// Text for the suggestion. +@property(nonatomic, copy, nullable) NSString* text; +// Image for the suggestion. +@property(nonatomic, strong, nullable) UIImage* image; +// URL associated with the suggestion. +@property(nonatomic, assign) GURL url; + +// Section information in which this suggestion should be. +@property(nonatomic, strong, nullable) + ContentSuggestionsSectionInformation* section; +@property(nonatomic, assign) ContentSuggestionType type; @end
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestion.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestion.mm index 0d25178..b9877af 100644 --- a/ios/chrome/browser/ui/content_suggestions/content_suggestion.mm +++ b/ios/chrome/browser/ui/content_suggestions/content_suggestion.mm
@@ -12,5 +12,9 @@ @synthesize title = _title; @synthesize image = _image; +@synthesize text = _text; +@synthesize url = _url; +@synthesize section = _section; +@synthesize type = _type; @end
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_article_item.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_article_item.mm index 5a7bc868..1c73e5fa 100644 --- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_article_item.mm +++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_article_item.mm
@@ -22,6 +22,8 @@ @end +#pragma mark - ContentSuggestionsArticleItem + @implementation ContentSuggestionsArticleItem @synthesize title = _title; @@ -54,6 +56,8 @@ @end +#pragma mark - ContentSuggestionsArticleCell + @implementation ContentSuggestionsArticleCell @synthesize titleLabel = _titleLabel;
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_section_information.h b/ios/chrome/browser/ui/content_suggestions/content_suggestions_section_information.h index 92545c1..2a0f2ca 100644 --- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_section_information.h +++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_section_information.h
@@ -27,27 +27,25 @@ // Do not use this. It will trigger a DCHECK. // Do not add value after this one. - ContentSuggestionsSectionCount + ContentSuggestionsSectionUnknown }; // Contains the information needed to display the section. @interface ContentSuggestionsSectionInformation : NSObject -- (instancetype)initWithID:(ContentSuggestionsSectionID)ID - emptyCell:(CollectionViewItem*)emptyCell - layout:(ContentSuggestionsSectionLayout)layout - title:(NSString*)title NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithSectionID:(ContentSuggestionsSectionID)sectionID + NS_DESIGNATED_INITIALIZER; - (instancetype)init NS_UNAVAILABLE; // Item to display when the section is empty. If nil the section should not be // displayed when empty. -@property(nonatomic, strong, readonly) CollectionViewItem* emptyCell; +@property(nonatomic, strong) CollectionViewItem* emptyCell; // Layout to display the content of the section. -@property(nonatomic, assign, readonly) ContentSuggestionsSectionLayout layout; +@property(nonatomic, assign) ContentSuggestionsSectionLayout layout; // ID of the section. Used for ordering. -@property(nonatomic, assign, readonly) ContentSuggestionsSectionID ID; +@property(nonatomic, assign, readonly) ContentSuggestionsSectionID sectionID; // Title for the section. -@property(nonatomic, copy, readonly) NSString* title; +@property(nonatomic, copy) NSString* title; @end
diff --git a/ios/chrome/browser/ui/content_suggestions/content_suggestions_section_information.mm b/ios/chrome/browser/ui/content_suggestions/content_suggestions_section_information.mm index 85969aab..817f8aa 100644 --- a/ios/chrome/browser/ui/content_suggestions/content_suggestions_section_information.mm +++ b/ios/chrome/browser/ui/content_suggestions/content_suggestions_section_information.mm
@@ -14,20 +14,14 @@ @synthesize emptyCell = _emptyCell; @synthesize layout = _layout; -@synthesize ID = _ID; +@synthesize sectionID = _sectionID; @synthesize title = _title; -- (instancetype)initWithID:(ContentSuggestionsSectionID)ID - emptyCell:(CollectionViewItem*)emptyCell - layout:(ContentSuggestionsSectionLayout)layout - title:(NSString*)title { +- (instancetype)initWithSectionID:(ContentSuggestionsSectionID)sectionID { self = [super init]; if (self) { - DCHECK(ID < ContentSuggestionsSectionCount); - _ID = ID; - _layout = layout; - _emptyCell = emptyCell; - _title = [title copy]; + DCHECK(sectionID < ContentSuggestionsSectionUnknown); + _sectionID = sectionID; } return self; }
diff --git a/media/gpu/BUILD.gn b/media/gpu/BUILD.gn index 9ef544c..3e95bbf 100644 --- a/media/gpu/BUILD.gn +++ b/media/gpu/BUILD.gn
@@ -211,7 +211,7 @@ } } - if (is_chromeos || is_mac || is_win) { + if (is_chromeos || is_win) { sources += [ "accelerated_video_decoder.h", "h264_decoder.cc",
diff --git a/media/gpu/h264_decoder.cc b/media/gpu/h264_decoder.cc index 7f4b7e2..e811217 100644 --- a/media/gpu/h264_decoder.cc +++ b/media/gpu/h264_decoder.cc
@@ -110,10 +110,54 @@ } bool H264Decoder::InitCurrPicture(const H264SliceHeader* slice_hdr) { - curr_pic_ = CreateH264PictureFromSliceHeader(parser_.GetSPS(curr_sps_id_), - *slice_hdr); - if (!curr_pic_) + DCHECK(curr_pic_.get()); + + curr_pic_->idr = slice_hdr->idr_pic_flag; + if (curr_pic_->idr) + curr_pic_->idr_pic_id = slice_hdr->idr_pic_id; + + if (slice_hdr->field_pic_flag) { + curr_pic_->field = slice_hdr->bottom_field_flag ? H264Picture::FIELD_BOTTOM + : H264Picture::FIELD_TOP; + } else { + curr_pic_->field = H264Picture::FIELD_NONE; + } + + if (curr_pic_->field != H264Picture::FIELD_NONE) { + DVLOG(1) << "Interlaced video not supported."; return false; + } + + curr_pic_->nal_ref_idc = slice_hdr->nal_ref_idc; + curr_pic_->ref = slice_hdr->nal_ref_idc != 0; + // This assumes non-interlaced stream. + curr_pic_->frame_num = curr_pic_->pic_num = slice_hdr->frame_num; + + DCHECK_NE(curr_sps_id_, -1); + const H264SPS* sps = parser_.GetSPS(curr_sps_id_); + if (!sps) + return false; + + curr_pic_->pic_order_cnt_type = sps->pic_order_cnt_type; + switch (curr_pic_->pic_order_cnt_type) { + case 0: + curr_pic_->pic_order_cnt_lsb = slice_hdr->pic_order_cnt_lsb; + curr_pic_->delta_pic_order_cnt_bottom = + slice_hdr->delta_pic_order_cnt_bottom; + break; + + case 1: + curr_pic_->delta_pic_order_cnt0 = slice_hdr->delta_pic_order_cnt0; + curr_pic_->delta_pic_order_cnt1 = slice_hdr->delta_pic_order_cnt1; + break; + + case 2: + break; + + default: + NOTREACHED(); + return false; + } if (!CalculatePicOrderCounts(curr_pic_)) return false; @@ -1136,12 +1180,53 @@ return true; } +bool H264Decoder::IsNewPrimaryCodedPicture( + const H264SliceHeader* slice_hdr) const { + if (!curr_pic_) + return true; + + // 7.4.1.2.4, assumes non-interlaced. + if (slice_hdr->frame_num != curr_pic_->frame_num || + slice_hdr->pic_parameter_set_id != curr_pps_id_ || + slice_hdr->nal_ref_idc != curr_pic_->nal_ref_idc || + slice_hdr->idr_pic_flag != curr_pic_->idr || + (slice_hdr->idr_pic_flag && + (slice_hdr->idr_pic_id != curr_pic_->idr_pic_id || + // If we have two consecutive IDR slices, and the second one has + // first_mb_in_slice == 0, treat it as a new picture. + // Per spec, idr_pic_id should not be equal in this case (and we should + // have hit the condition above instead, see spec 7.4.3 on idr_pic_id), + // but some encoders neglect changing idr_pic_id for two consecutive + // IDRs. Work around this by checking if the next slice contains the + // zeroth macroblock, i.e. data that belongs to the next picture. + slice_hdr->first_mb_in_slice == 0))) + return true; + + const H264SPS* sps = parser_.GetSPS(curr_sps_id_); + if (!sps) + return false; + + if (sps->pic_order_cnt_type == curr_pic_->pic_order_cnt_type) { + if (curr_pic_->pic_order_cnt_type == 0) { + if (slice_hdr->pic_order_cnt_lsb != curr_pic_->pic_order_cnt_lsb || + slice_hdr->delta_pic_order_cnt_bottom != + curr_pic_->delta_pic_order_cnt_bottom) + return true; + } else if (curr_pic_->pic_order_cnt_type == 1) { + if (slice_hdr->delta_pic_order_cnt0 != curr_pic_->delta_pic_order_cnt0 || + slice_hdr->delta_pic_order_cnt1 != curr_pic_->delta_pic_order_cnt1) + return true; + } + } + + return false; +} + bool H264Decoder::PreprocessCurrentSlice() { const H264SliceHeader* slice_hdr = curr_slice_hdr_.get(); DCHECK(slice_hdr); - if (IsNewPrimaryCodedPicture(curr_pic_, curr_pps_id_, - parser_.GetSPS(curr_sps_id_), *slice_hdr)) { + if (IsNewPrimaryCodedPicture(slice_hdr)) { // New picture, so first finish the previous one before processing it. if (!FinishPrevFrameIfPresent()) return false; @@ -1354,99 +1439,4 @@ return dpb_.max_num_pics() + kPicsInPipeline; } -// static -scoped_refptr<H264Picture> H264Decoder::CreateH264PictureFromSliceHeader( - const H264SPS* sps, - const H264SliceHeader& slice_hdr) { - scoped_refptr<H264Picture> pic(new H264Picture()); - pic->idr = slice_hdr.idr_pic_flag; - if (pic->idr) - pic->idr_pic_id = slice_hdr.idr_pic_id; - - if (slice_hdr.field_pic_flag) { - pic->field = slice_hdr.bottom_field_flag ? H264Picture::FIELD_BOTTOM - : H264Picture::FIELD_TOP; - } else { - pic->field = H264Picture::FIELD_NONE; - } - - if (pic->field != H264Picture::FIELD_NONE) { - DVLOG(1) << "Interlaced video not supported."; - return nullptr; - } - - pic->nal_ref_idc = slice_hdr.nal_ref_idc; - pic->ref = slice_hdr.nal_ref_idc != 0; - // This assumes non-interlaced stream. - pic->frame_num = pic->pic_num = slice_hdr.frame_num; - - if (!sps) - return nullptr; - - pic->pic_order_cnt_type = sps->pic_order_cnt_type; - switch (pic->pic_order_cnt_type) { - case 0: - pic->pic_order_cnt_lsb = slice_hdr.pic_order_cnt_lsb; - pic->delta_pic_order_cnt_bottom = slice_hdr.delta_pic_order_cnt_bottom; - break; - - case 1: - pic->delta_pic_order_cnt0 = slice_hdr.delta_pic_order_cnt0; - pic->delta_pic_order_cnt1 = slice_hdr.delta_pic_order_cnt1; - break; - - case 2: - break; - - default: - NOTREACHED(); - return nullptr; - } - return pic; -} - -// static -bool H264Decoder::IsNewPrimaryCodedPicture(scoped_refptr<H264Picture> curr_pic, - int curr_pps_id, - const H264SPS* sps, - const H264SliceHeader& slice_hdr) { - if (!curr_pic) - return true; - - // 7.4.1.2.4, assumes non-interlaced. - if (slice_hdr.frame_num != curr_pic->frame_num || - slice_hdr.pic_parameter_set_id != curr_pps_id || - slice_hdr.nal_ref_idc != curr_pic->nal_ref_idc || - slice_hdr.idr_pic_flag != curr_pic->idr || - (slice_hdr.idr_pic_flag && - (slice_hdr.idr_pic_id != curr_pic->idr_pic_id || - // If we have two consecutive IDR slices, and the second one has - // first_mb_in_slice == 0, treat it as a new picture. - // Per spec, idr_pic_id should not be equal in this case (and we should - // have hit the condition above instead, see spec 7.4.3 on idr_pic_id), - // but some encoders neglect changing idr_pic_id for two consecutive - // IDRs. Work around this by checking if the next slice contains the - // zeroth macroblock, i.e. data that belongs to the next picture. - slice_hdr.first_mb_in_slice == 0))) - return true; - - if (!sps) - return false; - - if (sps->pic_order_cnt_type == curr_pic->pic_order_cnt_type) { - if (curr_pic->pic_order_cnt_type == 0) { - if (slice_hdr.pic_order_cnt_lsb != curr_pic->pic_order_cnt_lsb || - slice_hdr.delta_pic_order_cnt_bottom != - curr_pic->delta_pic_order_cnt_bottom) - return true; - } else if (curr_pic->pic_order_cnt_type == 1) { - if (slice_hdr.delta_pic_order_cnt0 != curr_pic->delta_pic_order_cnt0 || - slice_hdr.delta_pic_order_cnt1 != curr_pic->delta_pic_order_cnt1) - return true; - } - } - - return false; -} - } // namespace media
diff --git a/media/gpu/h264_decoder.h b/media/gpu/h264_decoder.h index 7db95f7..1caf662 100644 --- a/media/gpu/h264_decoder.h +++ b/media/gpu/h264_decoder.h
@@ -111,18 +111,6 @@ gfx::Size GetPicSize() const override; size_t GetRequiredNumOfPictures() const override; - // Return true if we need to start a new picture. - static bool IsNewPrimaryCodedPicture(scoped_refptr<H264Picture> curr_pic, - int curr_pps_id, - const H264SPS* sps, - const H264SliceHeader& slice_hdr); - - // Create a H264Picture from given params. Return nullptr when there is an - // error. - static scoped_refptr<H264Picture> CreateH264PictureFromSliceHeader( - const H264SPS* sps, - const H264SliceHeader& slice_hdr); - private: // We need to keep at most kDPBMaxSize pictures in DPB for // reference/to display later and an additional one for the one currently @@ -151,6 +139,9 @@ // Process current slice as a slice of the current picture. bool ProcessCurrentSlice(); + // Return true if we need to start a new picture. + bool IsNewPrimaryCodedPicture(const H264SliceHeader* slice_hdr) const; + // Initialize the current picture according to data in |slice_hdr|. bool InitCurrPicture(const H264SliceHeader* slice_hdr);
diff --git a/media/gpu/video_encode_accelerator_unittest.cc b/media/gpu/video_encode_accelerator_unittest.cc index 7f925a6..11f019b9 100644 --- a/media/gpu/video_encode_accelerator_unittest.cc +++ b/media/gpu/video_encode_accelerator_unittest.cc
@@ -46,8 +46,6 @@ #include "media/filters/ffmpeg_video_decoder.h" #include "media/filters/h264_parser.h" #include "media/filters/ivf_parser.h" -#include "media/gpu/h264_decoder.h" -#include "media/gpu/h264_dpb.h" #include "media/gpu/video_accelerator_unittest_helpers.h" #include "media/video/fake_video_encode_accelerator.h" #include "media/video/video_encode_accelerator.h" @@ -607,18 +605,11 @@ void ProcessStreamBuffer(const uint8_t* stream, size_t size) override; private: - bool IsNewPicture(const H264SliceHeader& slice_hdr); - bool UpdateCurrentPicture(const H264SliceHeader& slice_hdr); - // Set to true when encoder provides us with the corresponding NALU type. bool seen_sps_; bool seen_pps_; bool seen_idr_; - scoped_refptr<H264Picture> curr_pic_; - int curr_sps_id_ = -1; - int curr_pps_id_ = -1; - H264Parser h264_parser_; }; @@ -646,14 +637,9 @@ // fallthrough case H264NALU::kNonIDRSlice: { ASSERT_TRUE(seen_idr_); - H264SliceHeader slice_hdr; - ASSERT_EQ(H264Parser::kOk, - h264_parser_.ParseSliceHeader(nalu, &slice_hdr)); - if (IsNewPicture(slice_hdr)) { - if (!frame_cb_.Run(keyframe)) - return; - ASSERT_TRUE(UpdateCurrentPicture(slice_hdr)); - } + seen_sps_ = seen_pps_ = false; + if (!frame_cb_.Run(keyframe)) + return; break; } @@ -678,36 +664,6 @@ } } -bool H264Validator::IsNewPicture(const H264SliceHeader& slice_hdr) { - if (!curr_pic_) - return true; - return H264Decoder::IsNewPrimaryCodedPicture( - curr_pic_, curr_pps_id_, h264_parser_.GetSPS(curr_sps_id_), slice_hdr); -} - -bool H264Validator::UpdateCurrentPicture(const H264SliceHeader& slice_hdr) { - curr_pps_id_ = slice_hdr.pic_parameter_set_id; - const H264PPS* pps = h264_parser_.GetPPS(curr_pps_id_); - if (!pps) { - LOG(ERROR) << "Cannot parse pps."; - return false; - } - - curr_sps_id_ = pps->seq_parameter_set_id; - const H264SPS* sps = h264_parser_.GetSPS(curr_sps_id_); - if (!sps) { - LOG(ERROR) << "Cannot parse sps."; - return false; - } - - curr_pic_ = H264Decoder::CreateH264PictureFromSliceHeader(sps, slice_hdr); - if (!curr_pic_) { - LOG(FATAL) << "Cannot initialize current frame."; - return false; - } - return true; -} - class VP8Validator : public StreamValidator { public: explicit VP8Validator(const FrameFoundCallback& frame_cb) @@ -2277,13 +2233,6 @@ false, false, false))); - -INSTANTIATE_TEST_CASE_P( - VerifyTimestamp, - VideoEncodeAcceleratorTest, - ::testing::Values( - std::make_tuple(1, false, 0, false, false, false, false, false, true))); - #if defined(OS_WIN) INSTANTIATE_TEST_CASE_P( ForceBitrate,
diff --git a/third_party/WebKit/LayoutTests/editing/editability/empty-document-stylewithcss-expected.txt b/third_party/WebKit/LayoutTests/editing/editability/empty-document-stylewithcss-expected.txt index 3a7468c..45d240de 100644 --- a/third_party/WebKit/LayoutTests/editing/editability/empty-document-stylewithcss-expected.txt +++ b/third_party/WebKit/LayoutTests/editing/editability/empty-document-stylewithcss-expected.txt
@@ -1,4 +1,5 @@ CONSOLE WARNING: line 14: document.execCommand() doesn't work with an invalid HTML structure. It is corrected automatically. +CONSOLE WARNING: line 18: The behavior that Selection.addRange() merges existing Range and the specified Range was removed. See https://www.chromestatus.com/features/6680566019653632 for more details. CONSOLE WARNING: line 21: document.execCommand() doesn't work with an invalid HTML structure. It is corrected automatically. This test ensures WebKit executes StyleWithCSS properly even in an empty document. First negation:PASS
diff --git a/third_party/WebKit/LayoutTests/editing/selection/addRange-failures-expected.txt b/third_party/WebKit/LayoutTests/editing/selection/addRange-failures-expected.txt index 8e11321..a5809d6a 100644 --- a/third_party/WebKit/LayoutTests/editing/selection/addRange-failures-expected.txt +++ b/third_party/WebKit/LayoutTests/editing/selection/addRange-failures-expected.txt
@@ -1,6 +1,4 @@ -CONSOLE ERROR: line 21: Discontiguous selection is not supported. CONSOLE ERROR: line 29: The given range isn't in document. -CONSOLE ERROR: line 51: The given range and the current selection belong to two different document fragments. Test error handling of Selection.addRange(). On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
diff --git a/third_party/WebKit/LayoutTests/editing/selection/addRange-merging-expected.txt b/third_party/WebKit/LayoutTests/editing/selection/addRange-merging-expected.txt deleted file mode 100644 index 3c6a0218..0000000 --- a/third_party/WebKit/LayoutTests/editing/selection/addRange-merging-expected.txt +++ /dev/null
@@ -1,270 +0,0 @@ -CONSOLE WARNING: line 83: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 132: Discontiguous selection is not supported. -CONSOLE ERROR: line 132: Discontiguous selection is not supported. -CONSOLE ERROR: line 132: Discontiguous selection is not supported. -CONSOLE ERROR: line 132: Discontiguous selection is not supported. -CONSOLE ERROR: line 132: Discontiguous selection is not supported. -CONSOLE ERROR: line 132: Discontiguous selection is not supported. -CONSOLE ERROR: line 132: Discontiguous selection is not supported. -CONSOLE ERROR: line 132: Discontiguous selection is not supported. -CONSOLE ERROR: line 132: Discontiguous selection is not supported. -CONSOLE ERROR: line 132: Discontiguous selection is not supported. -CONSOLE ERROR: line 139: Discontiguous selection is not supported. -CONSOLE ERROR: line 139: Discontiguous selection is not supported. -CONSOLE ERROR: line 139: Discontiguous selection is not supported. -CONSOLE ERROR: line 139: Discontiguous selection is not supported. -CONSOLE ERROR: line 139: Discontiguous selection is not supported. -CONSOLE ERROR: line 139: Discontiguous selection is not supported. -CONSOLE ERROR: line 139: Discontiguous selection is not supported. -CONSOLE ERROR: line 139: Discontiguous selection is not supported. -CONSOLE ERROR: line 139: Discontiguous selection is not supported. -CONSOLE ERROR: line 139: Discontiguous selection is not supported. -CONSOLE ERROR: line 146: Discontiguous selection is not supported. -CONSOLE ERROR: line 146: Discontiguous selection is not supported. -CONSOLE ERROR: line 146: Discontiguous selection is not supported. -CONSOLE ERROR: line 146: Discontiguous selection is not supported. -CONSOLE ERROR: line 146: Discontiguous selection is not supported. -CONSOLE ERROR: line 146: Discontiguous selection is not supported. -CONSOLE ERROR: line 146: Discontiguous selection is not supported. -CONSOLE ERROR: line 146: Discontiguous selection is not supported. -CONSOLE ERROR: line 146: Discontiguous selection is not supported. -CONSOLE ERROR: line 146: Discontiguous selection is not supported. -CONSOLE ERROR: line 153: Discontiguous selection is not supported. -CONSOLE ERROR: line 153: Discontiguous selection is not supported. -CONSOLE ERROR: line 153: Discontiguous selection is not supported. -CONSOLE ERROR: line 153: Discontiguous selection is not supported. -CONSOLE ERROR: line 153: Discontiguous selection is not supported. -CONSOLE ERROR: line 153: Discontiguous selection is not supported. -CONSOLE ERROR: line 153: Discontiguous selection is not supported. -CONSOLE ERROR: line 153: Discontiguous selection is not supported. -CONSOLE ERROR: line 153: Discontiguous selection is not supported. -CONSOLE ERROR: line 153: Discontiguous selection is not supported. -Selection.addRange() should properly merge intersecting (and don't merge discrete) ranges. - -On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE". - - -Running: testExpandLeftToRight (initializePositionsFunction = initializeTextPositions, containerIsEditable = false) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 4) -Running: testExpandLeftToRight (initializePositionsFunction = initializeTextPositions, containerIsEditable = true) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 4) -Running: testExpandLeftToRight (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 4) -Running: testExpandLeftToRight (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 4) -Running: testExpandLeftToRight (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #e], 0) -Running: testExpandLeftToRight (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #e], 0) -Running: testExpandLeftToRight (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #c], 0) -Running: testExpandLeftToRight (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #c], 0) -Running: testExpandLeftToRight (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<DIV>: #container], 1) -Running: testExpandLeftToRight (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<DIV>: #container], 1) -Running: testExpandRightToLeft (initializePositionsFunction = initializeTextPositions, containerIsEditable = false) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 4) -Running: testExpandRightToLeft (initializePositionsFunction = initializeTextPositions, containerIsEditable = true) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 4) -Running: testExpandRightToLeft (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 4) -Running: testExpandRightToLeft (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 4) -Running: testExpandRightToLeft (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #e], 0) -Running: testExpandRightToLeft (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #e], 0) -Running: testExpandRightToLeft (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #c], 0) -Running: testExpandRightToLeft (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #c], 0) -Running: testExpandRightToLeft (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<DIV>: #container], 1) -Running: testExpandRightToLeft (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<DIV>: #container], 1) -Running: testExpandLeftToRightAdjacent (initializePositionsFunction = initializeTextPositions, containerIsEditable = false) -PASS Selection was: start = ([Text: 12345], 2), end = ([Text: 12345], 4) -Running: testExpandLeftToRightAdjacent (initializePositionsFunction = initializeTextPositions, containerIsEditable = true) -PASS Selection was: start = ([Text: 12345], 2), end = ([Text: 12345], 4) -Running: testExpandLeftToRightAdjacent (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 2), end = ([<DIV>: #container], 4) -Running: testExpandLeftToRightAdjacent (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 2), end = ([<DIV>: #container], 4) -Running: testExpandLeftToRightAdjacent (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<SPAN>: #e], 0) -Running: testExpandLeftToRightAdjacent (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<SPAN>: #e], 0) -Running: testExpandLeftToRightAdjacent (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #a], 0), end = ([<SPAN>: #c], 0) -Running: testExpandLeftToRightAdjacent (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #a], 0), end = ([<SPAN>: #c], 0) -Running: testExpandLeftToRightAdjacent (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #b], 1), end = ([<DIV>: #container], 1) -Running: testExpandLeftToRightAdjacent (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #b], 1), end = ([<DIV>: #container], 1) -Running: testExpandRightToLeftAdjacent (initializePositionsFunction = initializeTextPositions, containerIsEditable = false) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 3) -Running: testExpandRightToLeftAdjacent (initializePositionsFunction = initializeTextPositions, containerIsEditable = true) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 3) -Running: testExpandRightToLeftAdjacent (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 3) -Running: testExpandRightToLeftAdjacent (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 3) -Running: testExpandRightToLeftAdjacent (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #d], 0) -Running: testExpandRightToLeftAdjacent (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #d], 0) -Running: testExpandRightToLeftAdjacent (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #b], 0) -Running: testExpandRightToLeftAdjacent (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #b], 0) -Running: testExpandRightToLeftAdjacent (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<SPAN>: #a], 1) -Running: testExpandRightToLeftAdjacent (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<SPAN>: #a], 1) -Running: testExpandBothEnds (initializePositionsFunction = initializeTextPositions, containerIsEditable = false) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 4) -Running: testExpandBothEnds (initializePositionsFunction = initializeTextPositions, containerIsEditable = true) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 4) -Running: testExpandBothEnds (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 4) -Running: testExpandBothEnds (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 4) -Running: testExpandBothEnds (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #e], 0) -Running: testExpandBothEnds (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #e], 0) -Running: testExpandBothEnds (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #c], 0) -Running: testExpandBothEnds (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #c], 0) -Running: testExpandBothEnds (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<DIV>: #container], 1) -Running: testExpandBothEnds (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<DIV>: #container], 1) -Running: testDontExpand (initializePositionsFunction = initializeTextPositions, containerIsEditable = false) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 4) -Running: testDontExpand (initializePositionsFunction = initializeTextPositions, containerIsEditable = true) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 4) -Running: testDontExpand (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 4) -Running: testDontExpand (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 4) -Running: testDontExpand (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #e], 0) -Running: testDontExpand (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #e], 0) -Running: testDontExpand (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #c], 0) -Running: testDontExpand (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #c], 0) -Running: testDontExpand (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<DIV>: #container], 1) -Running: testDontExpand (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<DIV>: #container], 1) -Running: testAddSameRange (initializePositionsFunction = initializeTextPositions, containerIsEditable = false) -PASS Selection was: start = ([Text: 12345], 2), end = ([Text: 12345], 3) -Running: testAddSameRange (initializePositionsFunction = initializeTextPositions, containerIsEditable = true) -PASS Selection was: start = ([Text: 12345], 2), end = ([Text: 12345], 3) -Running: testAddSameRange (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 2), end = ([<DIV>: #container], 3) -Running: testAddSameRange (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 2), end = ([<DIV>: #container], 3) -Running: testAddSameRange (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<SPAN>: #d], 0) -Running: testAddSameRange (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<SPAN>: #d], 0) -Running: testAddSameRange (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #a], 0), end = ([<SPAN>: #b], 0) -Running: testAddSameRange (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #a], 0), end = ([<SPAN>: #b], 0) -Running: testAddSameRange (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #b], 1), end = ([<SPAN>: #a], 1) -Running: testAddSameRange (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #b], 1), end = ([<SPAN>: #a], 1) -Running: testRejectDistantRangeAtRight (initializePositionsFunction = initializeTextPositions, containerIsEditable = false) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 2) -Running: testRejectDistantRangeAtRight (initializePositionsFunction = initializeTextPositions, containerIsEditable = true) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 2) -Running: testRejectDistantRangeAtRight (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 2) -Running: testRejectDistantRangeAtRight (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 2) -Running: testRejectDistantRangeAtRight (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #c], 0) -Running: testRejectDistantRangeAtRight (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #c], 0) -Running: testRejectDistantRangeAtRight (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #a], 0) -Running: testRejectDistantRangeAtRight (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #a], 0) -Running: testRejectDistantRangeAtRight (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<SPAN>: #b], 1) -Running: testRejectDistantRangeAtRight (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<SPAN>: #b], 1) -Running: testRejectDistantRangeAtLeft (initializePositionsFunction = initializeTextPositions, containerIsEditable = false) -PASS Selection was: start = ([Text: 12345], 3), end = ([Text: 12345], 4) -Running: testRejectDistantRangeAtLeft (initializePositionsFunction = initializeTextPositions, containerIsEditable = true) -PASS Selection was: start = ([Text: 12345], 3), end = ([Text: 12345], 4) -Running: testRejectDistantRangeAtLeft (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 3), end = ([<DIV>: #container], 4) -Running: testRejectDistantRangeAtLeft (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 3), end = ([<DIV>: #container], 4) -Running: testRejectDistantRangeAtLeft (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #d], 0), end = ([<SPAN>: #e], 0) -Running: testRejectDistantRangeAtLeft (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #d], 0), end = ([<SPAN>: #e], 0) -Running: testRejectDistantRangeAtLeft (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #c], 0) -Running: testRejectDistantRangeAtLeft (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #c], 0) -Running: testRejectDistantRangeAtLeft (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #a], 1), end = ([<DIV>: #container], 1) -Running: testRejectDistantRangeAtLeft (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #a], 1), end = ([<DIV>: #container], 1) -Running: testRejectDistantCollapsedRangeAtRight (initializePositionsFunction = initializeTextPositions, containerIsEditable = false) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 2) -Running: testRejectDistantCollapsedRangeAtRight (initializePositionsFunction = initializeTextPositions, containerIsEditable = true) -PASS Selection was: start = ([Text: 12345], 1), end = ([Text: 12345], 2) -Running: testRejectDistantCollapsedRangeAtRight (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 2) -Running: testRejectDistantCollapsedRangeAtRight (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 1), end = ([<DIV>: #container], 2) -Running: testRejectDistantCollapsedRangeAtRight (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #c], 0) -Running: testRejectDistantCollapsedRangeAtRight (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #c], 0) -Running: testRejectDistantCollapsedRangeAtRight (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #a], 0) -Running: testRejectDistantCollapsedRangeAtRight (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 0), end = ([<SPAN>: #a], 0) -Running: testRejectDistantCollapsedRangeAtRight (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<SPAN>: #b], 1) -Running: testRejectDistantCollapsedRangeAtRight (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #c], 0), end = ([<SPAN>: #b], 1) -Running: testRejectDistantCollapsedRangeAtLeft (initializePositionsFunction = initializeTextPositions, containerIsEditable = false) -PASS Selection was: start = ([Text: 12345], 3), end = ([Text: 12345], 4) -Running: testRejectDistantCollapsedRangeAtLeft (initializePositionsFunction = initializeTextPositions, containerIsEditable = true) -PASS Selection was: start = ([Text: 12345], 3), end = ([Text: 12345], 4) -Running: testRejectDistantCollapsedRangeAtLeft (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<DIV>: #container], 3), end = ([<DIV>: #container], 4) -Running: testRejectDistantCollapsedRangeAtLeft (initializePositionsFunction = initializeOuterElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<DIV>: #container], 3), end = ([<DIV>: #container], 4) -Running: testRejectDistantCollapsedRangeAtLeft (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #d], 0), end = ([<SPAN>: #e], 0) -Running: testRejectDistantCollapsedRangeAtLeft (initializePositionsFunction = initializeInnerElementPositions, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #d], 0), end = ([<SPAN>: #e], 0) -Running: testRejectDistantCollapsedRangeAtLeft (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #c], 0) -Running: testRejectDistantCollapsedRangeAtLeft (initializePositionsFunction = initializeVisiblyEquivalentPositionsBeforeNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #b], 0), end = ([<SPAN>: #c], 0) -Running: testRejectDistantCollapsedRangeAtLeft (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = false) -PASS Selection was: start = ([<SPAN>: #a], 1), end = ([<DIV>: #container], 1) -Running: testRejectDistantCollapsedRangeAtLeft (initializePositionsFunction = initializeVisiblyEquivalentPositionsAfterNodes, containerIsEditable = true) -PASS Selection was: start = ([<SPAN>: #a], 1), end = ([<DIV>: #container], 1) -PASS successfullyParsed is true - -TEST COMPLETE -
diff --git a/third_party/WebKit/LayoutTests/editing/selection/addRange-merging.html b/third_party/WebKit/LayoutTests/editing/selection/addRange-merging.html deleted file mode 100644 index a4db81c8..0000000 --- a/third_party/WebKit/LayoutTests/editing/selection/addRange-merging.html +++ /dev/null
@@ -1,224 +0,0 @@ -<!DOCTYPE html> -<html> -<head> -<title>Range merging with Selection.addRange()</title> -<script src="../../resources/js-test.js"></script> -</head> -<body> -<script> -description('Selection.addRange() should properly merge intersecting (and don\'t merge discrete) ranges.'); - -var selection = window.getSelection(); - -// Utility functions: -function createPosition(container, offset) -{ - return {'container': container, 'offset': offset}; -} - -function createRange(startPosition, endPosition) -{ - var range = new Range(); - range.setStart(startPosition.container, startPosition.offset); - range.setEnd(endPosition.container, endPosition.offset); - return range; -} - -function nodeToString(node) -{ - switch (node.nodeType) { - case Node.ELEMENT_NODE: - return '[<' + node.tagName + '>: #' + node.id + ']'; - case Node.TEXT_NODE: - return '[Text: ' + node.data + ']'; - default: - return node.toString(); - } -} - -function positionToString(position) -{ - return '(' + nodeToString(position.container) + ', ' + position.offset + ')'; -} - -function selectionShouldBe(expectedStartPosition, expectedEndPosition) -{ - var range = selection.getRangeAt(0); - var actualStartPosition = createPosition(range.startContainer, range.startOffset); - var actualEndPosition = createPosition(range.endContainer, range.endOffset); - if (actualStartPosition.container === expectedStartPosition.container - && actualStartPosition.offset === expectedStartPosition.offset - && actualEndPosition.container === expectedEndPosition.container - && actualEndPosition.offset === expectedEndPosition.offset) { - testPassed('Selection was: start = ' + positionToString(expectedStartPosition) + ', end = ' + positionToString(expectedEndPosition)); - } else { - testFailed('Selection should be: start = ' + positionToString(expectedStartPosition) + ', end = ' + positionToString(expectedEndPosition) + '\nbut was: start = ' + positionToString(actualStartPosition) + ', end = ' + positionToString(actualEndPosition)); - } -} - -function runSingleTest(testFunction, initializePositionsFunction, containerIsEditable) -{ - selection.removeAllRanges(); - var container = document.createElement('div'); - container.id = 'container'; - if (containerIsEditable) - container.contentEditable = true; - document.body.appendChild(container); - var positions = initializePositionsFunction(container); - debug('Running: ' + testFunction.name + ' (initializePositionsFunction = ' + initializePositionsFunction.name + ', containerIsEditable = ' + containerIsEditable + ')'); - testFunction(positions); - document.body.removeChild(container); -} - -// Actual tests: - -// To have better coverage over the possible code paths, each test is parametarized over four document positions; -// these positions are guaranteed to be ordered in the document order, but each position may vary in each test run. -// -// You can assume the selection is cleared before each test run. - -function testExpandLeftToRight(positions) -{ - selection.addRange(createRange(positions[0], positions[2])); - selection.addRange(createRange(positions[1], positions[3])); - selectionShouldBe(positions[0], positions[3]); -} - -function testExpandRightToLeft(positions) -{ - selection.addRange(createRange(positions[1], positions[3])); - selection.addRange(createRange(positions[0], positions[2])); - selectionShouldBe(positions[0], positions[3]); -} - -function testExpandLeftToRightAdjacent(positions) -{ - selection.addRange(createRange(positions[1], positions[2])); - selection.addRange(createRange(positions[2], positions[3])); - selectionShouldBe(positions[1], positions[3]); -} - -function testExpandRightToLeftAdjacent(positions) -{ - selection.addRange(createRange(positions[1], positions[2])); - selection.addRange(createRange(positions[0], positions[1])); - selectionShouldBe(positions[0], positions[2]); -} - -function testExpandBothEnds(positions) -{ - selection.addRange(createRange(positions[1], positions[2])); - selection.addRange(createRange(positions[0], positions[3])); - selectionShouldBe(positions[0], positions[3]); -} - -function testDontExpand(positions) -{ - selection.addRange(createRange(positions[0], positions[3])); - selection.addRange(createRange(positions[1], positions[2])); - selectionShouldBe(positions[0], positions[3]); -} - -function testAddSameRange(positions) -{ - selection.addRange(createRange(positions[1], positions[2])); - selection.addRange(createRange(positions[1], positions[2])); - selectionShouldBe(positions[1], positions[2]); -} - -function testRejectDistantRangeAtRight(positions) -{ - selection.addRange(createRange(positions[0], positions[1])); - selection.addRange(createRange(positions[2], positions[3])); - selectionShouldBe(positions[0], positions[1]); -} - -function testRejectDistantRangeAtLeft(positions) -{ - selection.addRange(createRange(positions[2], positions[3])); - selection.addRange(createRange(positions[0], positions[1])); - selectionShouldBe(positions[2], positions[3]); -} - -function testRejectDistantCollapsedRangeAtRight(positions) -{ - selection.addRange(createRange(positions[0], positions[1])); - selection.addRange(createRange(positions[2], positions[2])); - selectionShouldBe(positions[0], positions[1]); -} - -function testRejectDistantCollapsedRangeAtLeft(positions) -{ - selection.addRange(createRange(positions[2], positions[3])); - selection.addRange(createRange(positions[1], positions[1])); - selectionShouldBe(positions[2], positions[3]); -} - -// Position initializers: - -// Each initializer function takes an argument |container| which denotes the root element which can be filled with -// arbitrary contents. This element is created and added to the document before each test run, and removed from -// the document after each test run. - -function initializeTextPositions(container) -{ - container.innerHTML = '12345'; - var text = container.firstChild; - return [createPosition(text, 1), createPosition(text, 2), createPosition(text, 3), createPosition(text, 4)]; -} - -function initializeOuterElementPositions(container) -{ - container.innerHTML = '<span id="a">1</span><span id="b">2</span><span id="c">3</span><span id="d">4</span><span id="e">5</span>'; - return [createPosition(container, 1), createPosition(container, 2), createPosition(container, 3), createPosition(container, 4)]; -} - -function initializeInnerElementPositions(container) -{ - container.innerHTML = '<span id="a">1</span><span id="b">2</span><span id="c">3</span><span id="d">4</span><span id="e">5</span>'; - return [createPosition(container.childNodes[1], 0), createPosition(container.childNodes[2], 0), createPosition(container.childNodes[3], 0), createPosition(container.childNodes[4], 0)]; -} - -function initializeVisiblyEquivalentPositionsBeforeNodes(container) -{ - container.innerHTML = '<span id="a"><span id="b"><span id="c"></span></span></span>'; - return [createPosition(container, 0), createPosition(container.firstChild, 0), createPosition(container.firstChild.firstChild, 0), createPosition(container.firstChild.firstChild.firstChild, 0)]; -} - -function initializeVisiblyEquivalentPositionsAfterNodes(container) -{ - container.innerHTML = '<span id="a"><span id="b"><span id="c"></span></span></span>'; - return [createPosition(container.firstChild.firstChild.firstChild, 0), createPosition(container.firstChild.firstChild, 1), createPosition(container.firstChild, 1), createPosition(container, 1)]; -} - -var tests = [ - testExpandLeftToRight, - testExpandRightToLeft, - testExpandLeftToRightAdjacent, - testExpandRightToLeftAdjacent, - testExpandBothEnds, - testDontExpand, - testAddSameRange, - testRejectDistantRangeAtRight, - testRejectDistantRangeAtLeft, - testRejectDistantCollapsedRangeAtRight, - testRejectDistantCollapsedRangeAtLeft -]; -var positionInitializers = [ - initializeTextPositions, - initializeOuterElementPositions, - initializeInnerElementPositions, - initializeVisiblyEquivalentPositionsBeforeNodes, - initializeVisiblyEquivalentPositionsAfterNodes -]; - -tests.forEach(function (testFunction) { - positionInitializers.forEach(function (initializePositionsFunction) { - [false, true].forEach(function (containerIsEditable) { - runSingleTest(testFunction, initializePositionsFunction, containerIsEditable); - }); - }); -}); -</script> -</body> -</html>
diff --git a/third_party/WebKit/LayoutTests/editing/selection/addRange.html b/third_party/WebKit/LayoutTests/editing/selection/addRange.html deleted file mode 100644 index 2cb613e..0000000 --- a/third_party/WebKit/LayoutTests/editing/selection/addRange.html +++ /dev/null
@@ -1,36 +0,0 @@ -<p>This tests Selection::addRange(). It should have no effect if the range passed to it does not intersect the currently selected range. '3456' should be selected.</p> -<div id="div">123456789</div> - -<script> -var sel = window.getSelection(); -var div = document.getElementById("div"); -var text = div.firstChild; - -var range = document.createRange(); -range.setStart(text, 3); -range.setEnd(text, 5); -sel.addRange(range); - -range = document.createRange(); -range.setStart(text, 4); -range.setEnd(text, 6); -sel.addRange(range); - -range = document.createRange(); -range.setStart(text, 2); -range.setEnd(text, 3); -sel.addRange(range); - -// This should have no effect (until we support discontiguous selections) since this range doesn't intersect the currently selected range. -range = document.createRange(); -range.setStart(text, 7); -range.setEnd(text, 8); -sel.addRange(range); - -// Ditto. -range = document.createRange(); -range.setStart(text, 0); -range.setEnd(text, 1); -sel.addRange(range); - -</script>
diff --git a/third_party/WebKit/LayoutTests/editing/selection/selection_extend_in_detached_window.html b/third_party/WebKit/LayoutTests/editing/selection/selection_extend_in_detached_window.html new file mode 100644 index 0000000..c471ecc --- /dev/null +++ b/third_party/WebKit/LayoutTests/editing/selection/selection_extend_in_detached_window.html
@@ -0,0 +1,14 @@ +<!DOCTYPE html> +<script src="../../resources/testharness.js"></script> +<script src="../../resources/testharnessreport.js"></script> +<iframe></iframe> +<script> +window.onload = () => { + test(() => { + let iframe = document.querySelector('iframe'); + let selection = iframe.contentWindow.getSelection(); + iframe.remove(); + selection.extend(document.body); + }, 'Selection.extend() in a detached Window should not crash'); +}; +</script>
diff --git a/third_party/WebKit/LayoutTests/editing/text-iterator/findString-start-search-after-selection-expected.txt b/third_party/WebKit/LayoutTests/editing/text-iterator/findString-start-search-after-selection-expected.txt index 94e888d5..21973824c6 100644 --- a/third_party/WebKit/LayoutTests/editing/text-iterator/findString-start-search-after-selection-expected.txt +++ b/third_party/WebKit/LayoutTests/editing/text-iterator/findString-start-search-after-selection-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE ERROR: line 29: Discontiguous selection is not supported. The _before_selection_ word is before the selection, so we shouldn't be able to find it if span_to_select is selected. The _in_selection_ word is in the selection and we should always be able to find it. The _after_selection_ word is after the selection and we should always be able to find that too.
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-00-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-00-expected.txt index 369a175..2693a02 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-00-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-00-expected.txt
@@ -1,102 +1,42 @@ -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range was removed. See https://www.chromestatus.com/features/6680566019653632 for more details. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. This is a testharness.js-based test. -Found 2184 tests; 1784 PASS, 400 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 2184 tests; 1736 PASS, 448 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -129,9 +69,9 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -141,9 +81,9 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -268,7 +208,9 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -283,24 +225,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -310,7 +236,9 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -323,22 +251,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -362,15 +276,13 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -415,13 +327,12 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -445,13 +356,10 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -461,13 +369,10 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -477,13 +382,11 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -493,11 +396,11 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -570,7 +473,8 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -585,23 +489,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -611,7 +500,8 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -626,23 +516,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -652,16 +527,13 @@ PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -847,9 +719,9 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -859,9 +731,9 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -986,7 +858,9 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1001,24 +875,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1028,7 +886,9 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1041,22 +901,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1080,15 +926,13 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1133,13 +977,12 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1163,13 +1006,10 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1179,13 +1019,10 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1195,13 +1032,11 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1211,11 +1046,11 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -1288,7 +1123,8 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1303,23 +1139,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -1329,7 +1150,8 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1344,23 +1166,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -1370,16 +1177,13 @@ PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -1565,9 +1369,9 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -1577,9 +1381,9 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -1704,7 +1508,9 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1719,24 +1525,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1746,7 +1536,9 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1759,22 +1551,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1798,15 +1576,13 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1851,13 +1627,12 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1881,13 +1656,10 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1897,13 +1669,10 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1913,13 +1682,11 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1929,11 +1696,11 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -2006,7 +1773,8 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2021,23 +1789,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -2047,7 +1800,8 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2062,23 +1816,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -2088,16 +1827,13 @@ PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -2283,9 +2019,9 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -2295,9 +2031,9 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -2422,7 +2158,9 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2437,24 +2175,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -2464,7 +2186,9 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -2477,22 +2201,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -2516,15 +2226,13 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -2569,13 +2277,12 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -2599,13 +2306,10 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -2615,13 +2319,10 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -2631,13 +2332,11 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -2647,11 +2346,11 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -2724,7 +2423,8 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2739,23 +2439,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -2765,7 +2450,8 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2780,23 +2466,8 @@ testAddRangeSubSet(0, 4); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(0, 4); -testDiv.style.display = "none"; -" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -2806,16 +2477,13 @@ PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-04-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-04-expected.txt index e684dd98..6c80527 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-04-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-04-expected.txt
@@ -1,102 +1,42 @@ -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range was removed. See https://www.chromestatus.com/features/6680566019653632 for more details. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. This is a testharness.js-based test. -Found 2184 tests; 1784 PASS, 400 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 2184 tests; 1736 PASS, 448 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -129,9 +69,9 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -141,9 +81,9 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -268,7 +208,9 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -283,24 +225,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -310,7 +236,9 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -323,22 +251,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -362,15 +276,13 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -415,13 +327,12 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -445,13 +356,10 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -461,13 +369,10 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -477,13 +382,11 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -493,11 +396,11 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -570,7 +473,8 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -585,23 +489,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -611,7 +500,8 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -626,23 +516,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -652,16 +527,13 @@ PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -847,9 +719,9 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -859,9 +731,9 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -986,7 +858,9 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1001,24 +875,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1028,7 +886,9 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1041,22 +901,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1080,15 +926,13 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1133,13 +977,12 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1163,13 +1006,10 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1179,13 +1019,10 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1195,13 +1032,11 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1211,11 +1046,11 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -1288,7 +1123,8 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1303,23 +1139,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -1329,7 +1150,8 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1344,23 +1166,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -1370,16 +1177,13 @@ PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 5 [paras[1].firstChild, 0, paras[1].firstChild, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -1565,9 +1369,9 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -1577,9 +1381,9 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -1704,7 +1508,9 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1719,24 +1525,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1746,7 +1536,9 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1759,22 +1551,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1798,15 +1576,13 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1851,13 +1627,12 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1881,13 +1656,10 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1897,13 +1669,10 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1913,13 +1682,11 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1929,11 +1696,11 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -2006,7 +1773,8 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2021,23 +1789,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -2047,7 +1800,8 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2062,23 +1816,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -2088,16 +1827,13 @@ PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 6 [paras[1].firstChild, 2, paras[1].firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -2283,9 +2019,9 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -2295,9 +2031,9 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -2422,7 +2158,9 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2437,24 +2175,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -2464,7 +2186,9 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -2477,22 +2201,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -2516,15 +2226,13 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -2569,13 +2277,12 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -2599,13 +2306,10 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -2615,13 +2319,10 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -2631,13 +2332,11 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -2647,11 +2346,11 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -2724,7 +2423,8 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2739,23 +2439,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -2765,7 +2450,8 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2780,23 +2466,8 @@ testAddRangeSubSet(4, 8); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(4, 8); -testDiv.style.display = "none"; -" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -2806,16 +2477,13 @@ PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 7 [paras[1].firstChild, 2, paras[1].firstChild, 9] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-12-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-12-expected.txt index f07fae65..aef98ba 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-12-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-12-expected.txt
@@ -1,54 +1,24 @@ -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range was removed. See https://www.chromestatus.com/features/6680566019653632 for more details. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. This is a testharness.js-based test. -Found 1208 tests; 1008 PASS, 200 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 1208 tests; 984 PASS, 224 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must do nothing PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must do nothing PASS Range 12 [foreignPara1.firstChild, 0, foreignPara1.firstChild, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must do nothing @@ -197,9 +167,9 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -209,9 +179,9 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -336,7 +306,9 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -351,24 +323,8 @@ testAddRangeSubSet(12, 16); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(12, 16); -testDiv.style.display = "none"; -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -378,7 +334,9 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -391,22 +349,8 @@ testAddRangeSubSet(12, 16); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(12, 16); -testDiv.style.display = "none"; -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -430,15 +374,13 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -483,13 +425,12 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -513,13 +454,10 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -529,13 +467,10 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -545,13 +480,11 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -561,11 +494,11 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -638,7 +571,8 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -653,23 +587,8 @@ testAddRangeSubSet(12, 16); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(12, 16); -testDiv.style.display = "none"; -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -679,7 +598,8 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -694,23 +614,8 @@ testAddRangeSubSet(12, 16); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(12, 16); -testDiv.style.display = "none"; -" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -720,16 +625,13 @@ PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 14 [document.documentElement, 0, document.documentElement, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -915,9 +817,9 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -927,9 +829,9 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -1054,7 +956,9 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1069,24 +973,8 @@ testAddRangeSubSet(12, 16); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(12, 16); -testDiv.style.display = "none"; -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1096,7 +984,9 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1109,22 +999,8 @@ testAddRangeSubSet(12, 16); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(12, 16); -testDiv.style.display = "none"; -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1148,15 +1024,13 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1201,13 +1075,12 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1231,13 +1104,10 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1247,13 +1117,10 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1263,13 +1130,11 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1279,11 +1144,11 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -1356,7 +1221,8 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1371,23 +1237,8 @@ testAddRangeSubSet(12, 16); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(12, 16); -testDiv.style.display = "none"; -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -1397,7 +1248,8 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1412,23 +1264,8 @@ testAddRangeSubSet(12, 16); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(12, 16); -testDiv.style.display = "none"; -" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -1438,16 +1275,13 @@ PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 15 [document.documentElement, 0, document.documentElement, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-16-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-16-expected.txt index a13058b3..fa64c90c 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-16-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-16-expected.txt
@@ -1,78 +1,33 @@ -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range was removed. See https://www.chromestatus.com/features/6680566019653632 for more details. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. This is a testharness.js-based test. -Found 1696 tests; 1396 PASS, 300 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 1696 tests; 1360 PASS, 336 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -105,9 +60,9 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -117,9 +72,9 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -244,7 +199,9 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -259,24 +216,8 @@ testAddRangeSubSet(16, 20); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(16, 20); -testDiv.style.display = "none"; -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -286,7 +227,9 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -299,22 +242,8 @@ testAddRangeSubSet(16, 20); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(16, 20); -testDiv.style.display = "none"; -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -338,15 +267,13 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -391,13 +318,12 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -421,13 +347,10 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -437,13 +360,10 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -453,13 +373,11 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -469,11 +387,11 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -546,7 +464,8 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -561,23 +480,8 @@ testAddRangeSubSet(16, 20); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(16, 20); -testDiv.style.display = "none"; -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -587,7 +491,8 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -602,23 +507,8 @@ testAddRangeSubSet(16, 20); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(16, 20); -testDiv.style.display = "none"; -" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -628,16 +518,13 @@ PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 16 [document.documentElement, 1, document.documentElement, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -823,9 +710,9 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -835,9 +722,9 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -962,7 +849,9 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -977,24 +866,8 @@ testAddRangeSubSet(16, 20); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(16, 20); -testDiv.style.display = "none"; -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1004,7 +877,9 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1017,22 +892,8 @@ testAddRangeSubSet(16, 20); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(16, 20); -testDiv.style.display = "none"; -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1056,15 +917,13 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1109,13 +968,12 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1139,13 +997,10 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1155,13 +1010,10 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1171,13 +1023,11 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1187,11 +1037,11 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -1264,7 +1114,8 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1279,23 +1130,8 @@ testAddRangeSubSet(16, 20); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(16, 20); -testDiv.style.display = "none"; -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -1305,7 +1141,8 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 17 [document.head, 1, document.head, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1320,23 +1157,8 @@ testAddRangeSubSet(16, 20); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(16, 20); -testDiv.style.display = "none"; -" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -1346,16 +1168,13 @@ PASS Range 17 [document.head, 1, document.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 17 [document.head, 1, document.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 17 [document.head, 1, document.head, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 17 [document.head, 1, document.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 17 [document.head, 1, document.head, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -1541,9 +1360,9 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -1553,9 +1372,9 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -1680,7 +1499,9 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1695,24 +1516,8 @@ testAddRangeSubSet(16, 20); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(16, 20); -testDiv.style.display = "none"; -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1722,7 +1527,9 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1735,22 +1542,8 @@ testAddRangeSubSet(16, 20); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(16, 20); -testDiv.style.display = "none"; -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1774,15 +1567,13 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1827,13 +1618,12 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1857,13 +1647,10 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1873,13 +1660,10 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1889,13 +1673,11 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1905,11 +1687,11 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -1982,7 +1764,8 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1997,23 +1780,8 @@ testAddRangeSubSet(16, 20); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(16, 20); -testDiv.style.display = "none"; -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -2023,7 +1791,8 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 18 [document.body, 0, document.body, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2038,23 +1807,8 @@ testAddRangeSubSet(16, 20); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(16, 20); -testDiv.style.display = "none"; -" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -2064,16 +1818,13 @@ PASS Range 18 [document.body, 0, document.body, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 18 [document.body, 0, document.body, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 18 [document.body, 0, document.body, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 18 [document.body, 0, document.body, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 18 [document.body, 0, document.body, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-20-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-20-expected.txt index 6c4ce32..55e99ae4 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-20-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-20-expected.txt
@@ -1,54 +1,24 @@ -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range was removed. See https://www.chromestatus.com/features/6680566019653632 for more details. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. This is a testharness.js-based test. -Found 1208 tests; 1008 PASS, 200 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 1208 tests; 984 PASS, 224 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must do nothing PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must do nothing PASS Range 20 [foreignDoc.head, 1, foreignDoc.head, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must do nothing @@ -197,9 +167,9 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -209,9 +179,9 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -336,7 +306,9 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -351,24 +323,8 @@ testAddRangeSubSet(20, 24); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(20, 24); -testDiv.style.display = "none"; -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -378,7 +334,9 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -391,22 +349,8 @@ testAddRangeSubSet(20, 24); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(20, 24); -testDiv.style.display = "none"; -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -430,15 +374,13 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -483,13 +425,12 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -513,13 +454,10 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -529,13 +467,10 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -545,13 +480,11 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -561,11 +494,11 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -638,7 +571,8 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -653,23 +587,8 @@ testAddRangeSubSet(20, 24); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(20, 24); -testDiv.style.display = "none"; -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -679,7 +598,8 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -694,23 +614,8 @@ testAddRangeSubSet(20, 24); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(20, 24); -testDiv.style.display = "none"; -" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -720,16 +625,13 @@ PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 22 [paras[0], 0, paras[0], 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 22 [paras[0], 0, paras[0], 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -915,9 +817,9 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -927,9 +829,9 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -1054,7 +956,9 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1069,24 +973,8 @@ testAddRangeSubSet(20, 24); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(20, 24); -testDiv.style.display = "none"; -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1096,7 +984,9 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1109,22 +999,8 @@ testAddRangeSubSet(20, 24); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(20, 24); -testDiv.style.display = "none"; -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1148,15 +1024,13 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1201,13 +1075,12 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1231,13 +1104,10 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1247,13 +1117,10 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1263,13 +1130,11 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1279,11 +1144,11 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -1356,7 +1221,8 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1371,23 +1237,8 @@ testAddRangeSubSet(20, 24); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(20, 24); -testDiv.style.display = "none"; -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -1397,7 +1248,8 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1412,23 +1264,8 @@ testAddRangeSubSet(20, 24); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(20, 24); -testDiv.style.display = "none"; -" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -1438,16 +1275,13 @@ PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 23 [paras[0], 0, paras[0], 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 23 [paras[0], 0, paras[0], 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-24-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-24-expected.txt index 16efcb5..ddb0e0a 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-24-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-24-expected.txt
@@ -114,57 +114,27 @@ CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range was removed. See https://www.chromestatus.com/features/6680566019653632 for more details. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. This is a testharness.js-based test. -Found 1208 tests; 1008 PASS, 200 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 1208 tests; 984 PASS, 224 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must do nothing PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 1 [paras[0].firstChild, 0, paras[0].firstChild, 1]: first addRange() must do nothing PASS Range 24 [detachedPara1, 0, detachedPara1, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: first addRange() must do nothing @@ -313,9 +283,9 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -325,9 +295,9 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -452,7 +422,9 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -467,24 +439,8 @@ testAddRangeSubSet(24, 28); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(24, 28); -testDiv.style.display = "none"; -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -494,7 +450,9 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -507,22 +465,8 @@ testAddRangeSubSet(24, 28); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(24, 28); -testDiv.style.display = "none"; -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -546,15 +490,13 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -599,13 +541,12 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -629,13 +570,10 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -645,13 +583,10 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -661,13 +596,11 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -677,11 +610,11 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -754,7 +687,8 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -769,23 +703,8 @@ testAddRangeSubSet(24, 28); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(24, 28); -testDiv.style.display = "none"; -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -795,7 +714,8 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -810,23 +730,8 @@ testAddRangeSubSet(24, 28); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(24, 28); -testDiv.style.display = "none"; -" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -836,16 +741,13 @@ PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -1031,9 +933,9 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -1043,9 +945,9 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -1170,7 +1072,9 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1185,24 +1089,8 @@ testAddRangeSubSet(24, 28); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(24, 28); -testDiv.style.display = "none"; -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1212,7 +1100,9 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1225,22 +1115,8 @@ testAddRangeSubSet(24, 28); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(24, 28); -testDiv.style.display = "none"; -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1264,15 +1140,13 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1317,13 +1191,12 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1347,13 +1220,10 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1363,13 +1233,10 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1379,13 +1246,11 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1395,11 +1260,11 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -1472,7 +1337,8 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1487,23 +1353,8 @@ testAddRangeSubSet(24, 28); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(24, 28); -testDiv.style.display = "none"; -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -1513,7 +1364,8 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1528,23 +1380,8 @@ testAddRangeSubSet(24, 28); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(24, 28); -testDiv.style.display = "none"; -" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -1554,16 +1391,13 @@ PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-28-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-28-expected.txt index dccdd28..4c6a241 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-28-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-28-expected.txt
@@ -1,102 +1,42 @@ -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range was removed. See https://www.chromestatus.com/features/6680566019653632 for more details. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. This is a testharness.js-based test. -Found 2184 tests; 1784 PASS, 400 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 2184 tests; 1736 PASS, 448 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -129,9 +69,9 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -141,9 +81,9 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -268,7 +208,9 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -283,24 +225,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -310,7 +236,9 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -323,22 +251,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -362,15 +276,13 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -415,13 +327,12 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -445,13 +356,10 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -461,13 +369,10 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -477,13 +382,11 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -493,11 +396,11 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -570,7 +473,8 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -585,23 +489,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -611,7 +500,8 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -626,23 +516,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -652,16 +527,13 @@ PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 28 [paras[0].firstChild, 3, paras[3], 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -847,9 +719,9 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -859,9 +731,9 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -986,7 +858,9 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1001,24 +875,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1028,7 +886,9 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1041,22 +901,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1080,15 +926,13 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1133,13 +977,12 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1163,13 +1006,10 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1179,13 +1019,10 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1195,13 +1032,11 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1211,11 +1046,11 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -1288,7 +1123,8 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1303,23 +1139,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -1329,7 +1150,8 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1344,23 +1166,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -1370,16 +1177,13 @@ PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 29 [paras[0], 0, paras[0].firstChild, 7] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -1565,9 +1369,9 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -1577,9 +1381,9 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -1704,7 +1508,9 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1719,24 +1525,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1746,7 +1536,9 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1759,22 +1551,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1798,15 +1576,13 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1851,13 +1627,12 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1881,13 +1656,10 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1897,13 +1669,10 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1913,13 +1682,11 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1929,11 +1696,11 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -2006,7 +1773,8 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2021,23 +1789,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -2047,7 +1800,8 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2062,23 +1816,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -2088,16 +1827,13 @@ PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 30 [testDiv, 2, paras[4], 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 30 [testDiv, 2, paras[4], 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -2283,9 +2019,9 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -2295,9 +2031,9 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -2422,7 +2158,9 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2437,24 +2175,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -2464,7 +2186,9 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -2477,22 +2201,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -2516,15 +2226,13 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -2569,13 +2277,12 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -2599,13 +2306,10 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -2615,13 +2319,10 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -2631,13 +2332,11 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -2647,11 +2346,11 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -2724,7 +2423,8 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2739,23 +2439,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -2765,7 +2450,8 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2780,23 +2466,8 @@ testAddRangeSubSet(28, 32); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(28, 32); -testDiv.style.display = "none"; -" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -2806,16 +2477,13 @@ PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 31 [testDiv, 1, paras[2].firstChild, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-32-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-32-expected.txt index ca8e651..9ead3ce4 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-32-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-32-expected.txt
@@ -1,78 +1,33 @@ -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range was removed. See https://www.chromestatus.com/features/6680566019653632 for more details. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. This is a testharness.js-based test. -Found 1696 tests; 1396 PASS, 300 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 1696 tests; 1360 PASS, 336 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -105,9 +60,9 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -117,9 +72,9 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -244,7 +199,9 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -259,24 +216,8 @@ testAddRangeSubSet(32, 36); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(32, 36); -testDiv.style.display = "none"; -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -286,7 +227,9 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -299,22 +242,8 @@ testAddRangeSubSet(32, 36); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(32, 36); -testDiv.style.display = "none"; -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -338,15 +267,13 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -391,13 +318,12 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -421,13 +347,10 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -437,13 +360,10 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -453,13 +373,11 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -469,11 +387,11 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -546,7 +464,8 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -561,23 +480,8 @@ testAddRangeSubSet(32, 36); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(32, 36); -testDiv.style.display = "none"; -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -587,7 +491,8 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -602,23 +507,8 @@ testAddRangeSubSet(32, 36); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(32, 36); -testDiv.style.display = "none"; -" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -628,16 +518,13 @@ PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 32 [document.documentElement, 1, document.body, 0] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 32 [document.documentElement, 1, document.body, 0] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -881,9 +768,9 @@ PASS Range 34 [document, 0, document, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 34 [document, 0, document, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 34 [document, 0, document, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 34 [document, 0, document, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 34 [document, 0, document, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 34 [document, 0, document, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 34 [document, 0, document, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 34 [document, 0, document, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 34 [document, 0, document, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -893,9 +780,9 @@ PASS Range 34 [document, 0, document, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 34 [document, 0, document, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 34 [document, 0, document, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 34 [document, 0, document, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 34 [document, 0, document, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 34 [document, 0, document, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 34 [document, 0, document, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 34 [document, 0, document, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 34 [document, 0, document, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -1020,7 +907,9 @@ PASS Range 34 [document, 0, document, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 34 [document, 0, document, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 34 [document, 0, document, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 34 [document, 0, document, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 34 [document, 0, document, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1035,24 +924,8 @@ testAddRangeSubSet(32, 36); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(32, 36); -testDiv.style.display = "none"; -" -FAIL Range 34 [document, 0, document, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 34 [document, 0, document, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 34 [document, 0, document, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1062,7 +935,9 @@ PASS Range 34 [document, 0, document, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 34 [document, 0, document, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 34 [document, 0, document, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 34 [document, 0, document, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 34 [document, 0, document, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1075,22 +950,8 @@ testAddRangeSubSet(32, 36); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(32, 36); -testDiv.style.display = "none"; -" -FAIL Range 34 [document, 0, document, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 34 [document, 0, document, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 34 [document, 0, document, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1114,15 +975,13 @@ PASS Range 34 [document, 0, document, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 34 [document, 0, document, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 34 [document, 0, document, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 34 [document, 0, document, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 34 [document, 0, document, 1] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 34 [document, 0, document, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 34 [document, 0, document, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 34 [document, 0, document, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1167,13 +1026,12 @@ PASS Range 34 [document, 0, document, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 34 [document, 0, document, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 34 [document, 0, document, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 34 [document, 0, document, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 34 [document, 0, document, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 34 [document, 0, document, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 34 [document, 0, document, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 34 [document, 0, document, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 34 [document, 0, document, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1197,13 +1055,10 @@ PASS Range 34 [document, 0, document, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 34 [document, 0, document, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 34 [document, 0, document, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 34 [document, 0, document, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 34 [document, 0, document, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 34 [document, 0, document, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 34 [document, 0, document, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1213,13 +1068,10 @@ PASS Range 34 [document, 0, document, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 34 [document, 0, document, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 34 [document, 0, document, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 34 [document, 0, document, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 34 [document, 0, document, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 34 [document, 0, document, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 34 [document, 0, document, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1229,13 +1081,11 @@ PASS Range 34 [document, 0, document, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 34 [document, 0, document, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 34 [document, 0, document, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 34 [document, 0, document, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 34 [document, 0, document, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 34 [document, 0, document, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 34 [document, 0, document, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1245,11 +1095,11 @@ PASS Range 34 [document, 0, document, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 34 [document, 0, document, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 34 [document, 0, document, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 34 [document, 0, document, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 34 [document, 0, document, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 34 [document, 0, document, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 34 [document, 0, document, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 34 [document, 0, document, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 34 [document, 0, document, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -1322,7 +1172,8 @@ PASS Range 34 [document, 0, document, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 34 [document, 0, document, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 34 [document, 0, document, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 34 [document, 0, document, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 34 [document, 0, document, 1] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1337,23 +1188,8 @@ testAddRangeSubSet(32, 36); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(32, 36); -testDiv.style.display = "none"; -" -FAIL Range 34 [document, 0, document, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 34 [document, 0, document, 1] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 34 [document, 0, document, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -1363,7 +1199,8 @@ PASS Range 34 [document, 0, document, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 34 [document, 0, document, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 34 [document, 0, document, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 34 [document, 0, document, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 34 [document, 0, document, 1] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1378,23 +1215,8 @@ testAddRangeSubSet(32, 36); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(32, 36); -testDiv.style.display = "none"; -" -FAIL Range 34 [document, 0, document, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 34 [document, 0, document, 1] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 34 [document, 0, document, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -1404,16 +1226,13 @@ PASS Range 34 [document, 0, document, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 34 [document, 0, document, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 34 [document, 0, document, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 34 [document, 0, document, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 34 [document, 0, document, 1] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 34 [document, 0, document, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 34 [document, 0, document, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 34 [document, 0, document, 1] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 34 [document, 0, document, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 34 [document, 0, document, 1] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -1599,9 +1418,9 @@ PASS Range 35 [document, 0, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 35 [document, 0, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 35 [document, 0, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 35 [document, 0, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 35 [document, 0, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 35 [document, 0, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 35 [document, 0, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 35 [document, 0, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 35 [document, 0, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -1611,9 +1430,9 @@ PASS Range 35 [document, 0, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 35 [document, 0, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 35 [document, 0, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 35 [document, 0, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 35 [document, 0, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 35 [document, 0, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 35 [document, 0, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 35 [document, 0, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 35 [document, 0, document, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -1738,7 +1557,9 @@ PASS Range 35 [document, 0, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 35 [document, 0, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 35 [document, 0, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 35 [document, 0, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 35 [document, 0, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1753,24 +1574,8 @@ testAddRangeSubSet(32, 36); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(32, 36); -testDiv.style.display = "none"; -" -FAIL Range 35 [document, 0, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 35 [document, 0, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 35 [document, 0, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1780,7 +1585,9 @@ PASS Range 35 [document, 0, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 35 [document, 0, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 35 [document, 0, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 35 [document, 0, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 35 [document, 0, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1793,22 +1600,8 @@ testAddRangeSubSet(32, 36); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(32, 36); -testDiv.style.display = "none"; -" -FAIL Range 35 [document, 0, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 35 [document, 0, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 35 [document, 0, document, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1832,15 +1625,13 @@ PASS Range 35 [document, 0, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 35 [document, 0, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 35 [document, 0, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 35 [document, 0, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 35 [document, 0, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 35 [document, 0, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 35 [document, 0, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 35 [document, 0, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1885,13 +1676,12 @@ PASS Range 35 [document, 0, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 35 [document, 0, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 35 [document, 0, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 35 [document, 0, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 35 [document, 0, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 35 [document, 0, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 35 [document, 0, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 35 [document, 0, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 35 [document, 0, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1915,13 +1705,10 @@ PASS Range 35 [document, 0, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 35 [document, 0, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 35 [document, 0, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 35 [document, 0, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 35 [document, 0, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 35 [document, 0, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 35 [document, 0, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1931,13 +1718,10 @@ PASS Range 35 [document, 0, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 35 [document, 0, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 35 [document, 0, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 35 [document, 0, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 35 [document, 0, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 35 [document, 0, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 35 [document, 0, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1947,13 +1731,11 @@ PASS Range 35 [document, 0, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 35 [document, 0, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 35 [document, 0, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 35 [document, 0, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 35 [document, 0, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 35 [document, 0, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 35 [document, 0, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1963,11 +1745,11 @@ PASS Range 35 [document, 0, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 35 [document, 0, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 35 [document, 0, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 35 [document, 0, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 35 [document, 0, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 35 [document, 0, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 35 [document, 0, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 35 [document, 0, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 35 [document, 0, document, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -2040,7 +1822,8 @@ PASS Range 35 [document, 0, document, 2] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 35 [document, 0, document, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 35 [document, 0, document, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 35 [document, 0, document, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 35 [document, 0, document, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2055,23 +1838,8 @@ testAddRangeSubSet(32, 36); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(32, 36); -testDiv.style.display = "none"; -" -FAIL Range 35 [document, 0, document, 2] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 35 [document, 0, document, 2] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 35 [document, 0, document, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -2081,7 +1849,8 @@ PASS Range 35 [document, 0, document, 2] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 35 [document, 0, document, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 35 [document, 0, document, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 35 [document, 0, document, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 35 [document, 0, document, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2096,23 +1865,8 @@ testAddRangeSubSet(32, 36); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(32, 36); -testDiv.style.display = "none"; -" -FAIL Range 35 [document, 0, document, 2] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 35 [document, 0, document, 2] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 35 [document, 0, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -2122,16 +1876,13 @@ PASS Range 35 [document, 0, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 35 [document, 0, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 35 [document, 0, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 35 [document, 0, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 35 [document, 0, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 35 [document, 0, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 35 [document, 0, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 35 [document, 0, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 35 [document, 0, document, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 35 [document, 0, document, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1
diff --git a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-36-expected.txt b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-36-expected.txt index 0184bd0c..1d81d91a 100644 --- a/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-36-expected.txt +++ b/third_party/WebKit/LayoutTests/external/wpt/selection/addRange-36-expected.txt
@@ -1,102 +1,42 @@ -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE WARNING: line 24: The behavior that Selection.addRange() merges existing Range and the specified Range was removed. See https://www.chromestatus.com/features/6680566019653632 for more details. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. -CONSOLE ERROR: line 24: Discontiguous selection is not supported. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. +CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. CONSOLE ERROR: line 8: The given range isn't in document. This is a testharness.js-based test. -Found 2184 tests; 1784 PASS, 400 FAIL, 0 TIMEOUT, 0 NOTRUN. +Found 2184 tests; 1736 PASS, 448 FAIL, 0 TIMEOUT, 0 NOTRUN. PASS Range 36 [document, 1, document, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in rangeCount being 1 PASS Range 36 [document, 1, document, 2] followed by Range 0 [paras[0].firstChild, 0, paras[0].firstChild, 0]: first addRange() must result in the selection's last range having the specified endpoints @@ -129,9 +69,9 @@ PASS Range 36 [document, 1, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 36 [document, 1, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 36 [document, 1, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 36 [document, 1, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 36 [document, 1, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 36 [document, 1, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 36 [document, 1, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 36 [document, 1, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 36 [document, 1, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -141,9 +81,9 @@ PASS Range 36 [document, 1, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 36 [document, 1, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 36 [document, 1, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 36 [document, 1, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 36 [document, 1, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 36 [document, 1, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 36 [document, 1, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 36 [document, 1, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 36 [document, 1, document, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -268,7 +208,9 @@ PASS Range 36 [document, 1, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 36 [document, 1, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 36 [document, 1, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 36 [document, 1, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 36 [document, 1, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -283,24 +225,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 36 [document, 1, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 36 [document, 1, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 36 [document, 1, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -310,7 +236,9 @@ PASS Range 36 [document, 1, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 36 [document, 1, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 36 [document, 1, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 36 [document, 1, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 36 [document, 1, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -323,22 +251,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 36 [document, 1, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 36 [document, 1, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 36 [document, 1, document, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -362,15 +276,13 @@ PASS Range 36 [document, 1, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 36 [document, 1, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 36 [document, 1, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 36 [document, 1, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 36 [document, 1, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 36 [document, 1, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 36 [document, 1, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 36 [document, 1, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -415,13 +327,12 @@ PASS Range 36 [document, 1, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 36 [document, 1, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 36 [document, 1, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 36 [document, 1, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 36 [document, 1, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 36 [document, 1, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 36 [document, 1, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 36 [document, 1, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 36 [document, 1, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -445,13 +356,10 @@ PASS Range 36 [document, 1, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 36 [document, 1, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 36 [document, 1, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 36 [document, 1, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 36 [document, 1, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 36 [document, 1, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 36 [document, 1, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -461,13 +369,10 @@ PASS Range 36 [document, 1, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 36 [document, 1, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 36 [document, 1, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 36 [document, 1, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 36 [document, 1, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 36 [document, 1, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 36 [document, 1, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -477,13 +382,11 @@ PASS Range 36 [document, 1, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 36 [document, 1, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 36 [document, 1, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 36 [document, 1, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 36 [document, 1, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 36 [document, 1, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 36 [document, 1, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -493,11 +396,11 @@ PASS Range 36 [document, 1, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 36 [document, 1, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 36 [document, 1, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 36 [document, 1, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 36 [document, 1, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 36 [document, 1, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 36 [document, 1, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 36 [document, 1, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 36 [document, 1, document, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -570,7 +473,8 @@ PASS Range 36 [document, 1, document, 2] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 36 [document, 1, document, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 36 [document, 1, document, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 36 [document, 1, document, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 36 [document, 1, document, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -585,23 +489,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 36 [document, 1, document, 2] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 36 [document, 1, document, 2] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 36 [document, 1, document, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -611,7 +500,8 @@ PASS Range 36 [document, 1, document, 2] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 36 [document, 1, document, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 36 [document, 1, document, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 36 [document, 1, document, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 36 [document, 1, document, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -626,23 +516,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 36 [document, 1, document, 2] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 36 [document, 1, document, 2] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 36 [document, 1, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -652,16 +527,13 @@ PASS Range 36 [document, 1, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 36 [document, 1, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 36 [document, 1, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 36 [document, 1, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 36 [document, 1, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 36 [document, 1, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 36 [document, 1, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 36 [document, 1, document, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 36 [document, 1, document, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 36 [document, 1, document, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -847,9 +719,9 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -859,9 +731,9 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -986,7 +858,9 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1001,24 +875,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1028,7 +886,9 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1041,22 +901,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1080,15 +926,13 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1133,13 +977,12 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1163,13 +1006,10 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1179,13 +1019,10 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1195,13 +1032,11 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1211,11 +1046,11 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -1288,7 +1123,8 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1303,23 +1139,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -1329,7 +1150,8 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 37 [testDiv, 0, comment, 5] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1344,23 +1166,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -1370,16 +1177,13 @@ PASS Range 37 [testDiv, 0, comment, 5] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 37 [testDiv, 0, comment, 5] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 37 [testDiv, 0, comment, 5] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 37 [testDiv, 0, comment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 37 [testDiv, 0, comment, 5] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -1565,9 +1369,9 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -1577,9 +1381,9 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -1704,7 +1508,9 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -1719,24 +1525,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -1746,7 +1536,9 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -1759,22 +1551,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -1798,15 +1576,13 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -1851,13 +1627,12 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -1881,13 +1656,10 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -1897,13 +1669,10 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -1913,13 +1682,11 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -1929,11 +1696,11 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -2006,7 +1773,8 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2021,23 +1789,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -2047,7 +1800,8 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2062,23 +1816,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -2088,16 +1827,13 @@ PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 38 [paras[2].firstChild, 4, comment, 2] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1 @@ -2283,9 +2019,9 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "b̈c̈d̈" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈" but got object "" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 2 [paras[0].firstChild, 2, paras[0].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: first addRange() must result in rangeCount being 1 @@ -2295,9 +2031,9 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the first added Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in rangeCount being 1 -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "b̈c̈d̈e" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 2 +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 2 but got 6 +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "b̈c̈d̈e" but got object "" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 3 [paras[0].firstChild, 2, paras[0].firstChild, 9]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 4 [paras[1].firstChild, 0, paras[1].firstChild, 0]: first addRange() must result in rangeCount being 1 @@ -2422,7 +2158,9 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2437,24 +2175,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 15 [document.documentElement, 0, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: first addRange() must result in rangeCount being 1 @@ -2464,7 +2186,9 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in rangeCount being 1 -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <html><head><title>Selection.addRange() tests</title> +<me... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop QrstuvwxYzabcdefGhijklmn @@ -2477,22 +2201,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <html><head><title>Selection.addRange() tests</title> -<me... +" but got object "" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 16 [document.documentElement, 1, document.documentElement, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 17 [document.head, 1, document.head, 1]: first addRange() must result in rangeCount being 1 @@ -2516,15 +2226,13 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the first added Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in rangeCount being 1 -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 18 [document.body, 0, document.body, 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <body><div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 18 [document.body, 0, document.body, 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 19 [foreignDoc.documentElement, 0, foreignDoc.documentElement, 1]: first addRange() must result in rangeCount being 1 @@ -2569,13 +2277,12 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in rangeCount being 1 -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ " -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ +" but got object "" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 23 [paras[0], 0, paras[0], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 24 [detachedPara1, 0, detachedPara1, 0]: first addRange() must result in rangeCount being 1 @@ -2599,13 +2306,10 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the first added Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in rangeCount being 1 -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -" but got object "Äb̈c̈d̈ëf̈g̈ḧ -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +" but got object "" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 26 [paras[0].firstChild, 0, paras[1].firstChild, 0]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: first addRange() must result in rangeCount being 1 @@ -2615,13 +2319,10 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the first added Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in rangeCount being 1 -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, endContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Text node "Ijklmnop -" +Ijklmnop" but got object "" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 27 [paras[0].firstChild, 0, paras[1].firstChild, 8]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: first addRange() must result in rangeCount being 1 @@ -2631,13 +2332,11 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the first added Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in rangeCount being 1 -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startOffset of the Selection's last Range must match the added Range expected 3 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdef" but got object "̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdef" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 3 +QrstuvwxYzabcdef" but got object "" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 28 [paras[0].firstChild, 3, paras[3], 1]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: first addRange() must result in rangeCount being 1 @@ -2647,11 +2346,11 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the first added Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in rangeCount being 1 -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "Äb̈c̈d" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p> +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p> but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d" but got object "" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 29 [paras[0], 0, paras[0].firstChild, 7]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 30 [testDiv, 2, paras[4], 1]: first addRange() must result in rangeCount being 1 @@ -2724,7 +2423,8 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 35 [document, 0, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2739,23 +2439,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 35 [document, 0, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 35 [document, 0, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 36 [document, 1, document, 2]: first addRange() must result in rangeCount being 1 @@ -2765,7 +2450,8 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the first added Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in rangeCount being 1 -PASS Range 39 [paras[3], 1, comment, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Document node with 2 children but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 36 [document, 1, document, 2]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Selection.addRange() tests Äb̈c̈d̈ëf̈g̈ḧ @@ -2780,23 +2466,8 @@ testAddRangeSubSet(36, 40); testDiv.style.display = "none"; -" but got object "Selection.addRange() tests - -Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn - - - - - -"use strict"; - -testAddRangeSubSet(36, 40); -testDiv.style.display = "none"; -" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Document node with 2 children +" but got object "" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 36 [document, 1, document, 2]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 36 [document, 1, document, 2]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 37 [testDiv, 0, comment, 5]: first addRange() must result in rangeCount being 1 @@ -2806,16 +2477,13 @@ PASS Range 39 [paras[3], 1, comment, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the first added Range PASS Range 39 [paras[3], 1, comment, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in rangeCount being 1 -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: endContainer of the Selection's last Range must match the added Range expected Comment node <!--Alphabet soup?--> but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range having the specified endpoints assert_equals: startContainer of the Selection's last Range must match the added Range expected Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ +</p><p id="b" s... but got Text node "Äb̈c̈d̈ëf̈g̈ḧ +" FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 37 [testDiv, 0, comment, 5]: second addRange() must result in the selection's last range being the same object we added assert_equals: getRangeAt(rangeCount - 1) must return the same object we added expected object "Äb̈c̈d̈ëf̈g̈ḧ Ijklmnop -QrstuvwxYzabcdefGhijklmn" but got object "Äb̈c̈d̈ëf̈g̈ḧ -Ijklmnop -QrstuvwxYzabcdefGhijklmn" -FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startContainer of the Selection's last Range must match the added Range expected Text node "Äb̈c̈d̈ëf̈g̈ḧ -" but got Element node <div id="test"><p id="a">Äb̈c̈d̈ëf̈g̈ḧ -</p><p id="b" s... +QrstuvwxYzabcdefGhijklmn" but got object "" +FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the second added range must modify the Selection's last Range assert_equals: After mutating the second added Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 FAIL Range 39 [paras[3], 1, comment, 8] followed by Range 37 [testDiv, 0, comment, 5]: modifying the Selection's last Range must modify the second added Range assert_equals: After second addRange(), after mutating the Selection's last Range, startOffset of the Selection's last Range must match the added Range expected 0 but got 6 PASS Range 39 [paras[3], 1, comment, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must not throw exceptions or modify the range it's given PASS Range 39 [paras[3], 1, comment, 8] followed by Range 38 [paras[2].firstChild, 4, comment, 2]: first addRange() must result in rangeCount being 1
diff --git a/third_party/WebKit/LayoutTests/fast/css/first-letter-rtc-crash-expected.txt b/third_party/WebKit/LayoutTests/fast/css/first-letter-rtc-crash-expected.txt index 9c31c0b..594e02e 100644 --- a/third_party/WebKit/LayoutTests/fast/css/first-letter-rtc-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/css/first-letter-rtc-crash-expected.txt
@@ -1,12 +1,4 @@ -CONSOLE ERROR: line 21: Discontiguous selection is not supported. -CONSOLE ERROR: line 21: Discontiguous selection is not supported. -CONSOLE WARNING: line 21: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 21: Discontiguous selection is not supported. -CONSOLE ERROR: line 21: Discontiguous selection is not supported. -CONSOLE ERROR: line 21: Discontiguous selection is not supported. -CONSOLE ERROR: line 21: Discontiguous selection is not supported. -CONSOLE ERROR: line 21: Discontiguous selection is not supported. -CONSOLE ERROR: line 21: Discontiguous selection is not supported. +CONSOLE WARNING: line 21: The behavior that Selection.addRange() merges existing Range and the specified Range was removed. See https://www.chromestatus.com/features/6680566019653632 for more details. CONSOLE ERROR: line 38: Uncaught HierarchyRequestError: Failed to execute 'insertNode' on 'Range': The node to be inserted contains the insertion point; it may not be inserted into itself. -texta +a Test passes if it does not CRASH.
diff --git a/third_party/WebKit/LayoutTests/fast/css/invalidation/selection-pseudo-expected.txt b/third_party/WebKit/LayoutTests/fast/css/invalidation/selection-pseudo-expected.txt index 3272a70..4936d9c2 100644 --- a/third_party/WebKit/LayoutTests/fast/css/invalidation/selection-pseudo-expected.txt +++ b/third_party/WebKit/LayoutTests/fast/css/invalidation/selection-pseudo-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE ERROR: line 43: Discontiguous selection is not supported. Style invalidation for ::selection On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
diff --git a/third_party/WebKit/LayoutTests/fast/css/invalidation/sheet-ruleset-invalidation.html b/third_party/WebKit/LayoutTests/fast/css/invalidation/sheet-ruleset-invalidation.html index d513ff27..a3afa85 100644 --- a/third_party/WebKit/LayoutTests/fast/css/invalidation/sheet-ruleset-invalidation.html +++ b/third_party/WebKit/LayoutTests/fast/css/invalidation/sheet-ruleset-invalidation.html
@@ -13,6 +13,10 @@ </div> <span></span> </div> +<div id="placeholderWrapper"> + <textarea placeholder="Placeholder text"></textarea> +</div> +<textarea placeholder="Placeholder text"></textarea> <script> test(() => { assert_true(!!window.internals, "Tests require window.internals."); @@ -43,4 +47,22 @@ "#found div { background: red }"), 1, "Check that only one of the divs is recalculated."); }, "A type selector scoped by a known id should only invalidate descendants of the element with that id."); + + test(() => { + assert_equals(applyRuleAndReturnAffectedElementCount( + "::-webkit-input-placeholder { background: green }"), 2, + "Check that only custom pseudo elements are recalculated."); + }, "A style rule with a custom pseudo element should only invalidate custom pseudo elements."); + + test(() => { + assert_equals(applyRuleAndReturnAffectedElementCount( + "#notfound ::-webkit-input-placeholder { background: green }"), 0, + "Check that no elements are recalculated."); + }, "A custom pseudo element scoped in an unknown id should not invalidate any elements."); + + test(() => { + assert_equals(applyRuleAndReturnAffectedElementCount( + "#placeholderWrapper ::-webkit-input-placeholder { background: green }"), 1, + "Check that only the scoped custom pseudo element is recalculated."); + }, "A custom pseudo element scoped in a known id should only invalidate descendants of the element with that id."); </script>
diff --git a/third_party/WebKit/LayoutTests/fullscreen/full-screen-contentEditable-crash-expected.txt b/third_party/WebKit/LayoutTests/fullscreen/full-screen-contentEditable-crash-expected.txt index 0efc0ca..2799b65 100644 --- a/third_party/WebKit/LayoutTests/fullscreen/full-screen-contentEditable-crash-expected.txt +++ b/third_party/WebKit/LayoutTests/fullscreen/full-screen-contentEditable-crash-expected.txt
@@ -1,3 +1,3 @@ -CONSOLE WARNING: line 22: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. +CONSOLE WARNING: line 22: The behavior that Selection.addRange() merges existing Range and the specified Range was removed. See https://www.chromestatus.com/features/6680566019653632 for more details. Pass if there is no crash. Click anywhere to test manually.
diff --git a/third_party/WebKit/LayoutTests/platform/android/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt b/third_party/WebKit/LayoutTests/platform/android/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt index 999d3d4..831eb221 100644 --- a/third_party/WebKit/LayoutTests/platform/android/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/android/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE ERROR: Discontiguous selection is not supported. PASS repainted when expected PASS repainted when expected PASS repainted when expected
diff --git a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt index f97dd19..dded8e3 100644 --- a/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/linux/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE ERROR: line 56: Discontiguous selection is not supported. PASS repainted when expected FAIL did not repaint when expected PASS repainted when expected
diff --git a/third_party/WebKit/LayoutTests/platform/linux/editing/selection/addRange-expected.png b/third_party/WebKit/LayoutTests/platform/linux/editing/selection/addRange-expected.png deleted file mode 100644 index 8802d62e..0000000 --- a/third_party/WebKit/LayoutTests/platform/linux/editing/selection/addRange-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/linux/editing/selection/addRange-expected.txt b/third_party/WebKit/LayoutTests/platform/linux/editing/selection/addRange-expected.txt deleted file mode 100644 index a006f41..0000000 --- a/third_party/WebKit/LayoutTests/platform/linux/editing/selection/addRange-expected.txt +++ /dev/null
@@ -1,18 +0,0 @@ -CONSOLE WARNING: line 17: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 28: Discontiguous selection is not supported. -CONSOLE ERROR: line 34: Discontiguous selection is not supported. -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584 - LayoutBlockFlow {P} at (0,0) size 784x40 - LayoutText {#text} at (0,0) size 765x39 - text run at (0,0) width 200: "This tests Selection::addRange(). " - text run at (200,0) width 565: "It should have no effect if the range passed to it does not intersect the currently selected range." - text run at (0,20) width 157: "'3456' should be selected." - LayoutBlockFlow {DIV} at (0,56) size 784x20 - LayoutText {#text} at (0,0) size 72x19 - text run at (0,0) width 72: "123456789" -selection start: position 2 of child 0 {#text} of child 2 {DIV} of body -selection end: position 6 of child 0 {#text} of child 2 {DIV} of body
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt index f97dd19..dded8e3 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.10/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.10/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE ERROR: line 56: Discontiguous selection is not supported. PASS repainted when expected FAIL did not repaint when expected PASS repainted when expected
diff --git a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt index f97dd19..dded8e3 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-mac10.9/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-mac10.9/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE ERROR: line 56: Discontiguous selection is not supported. PASS repainted when expected FAIL did not repaint when expected PASS repainted when expected
diff --git a/third_party/WebKit/LayoutTests/platform/mac-retina/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt b/third_party/WebKit/LayoutTests/platform/mac-retina/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt index f97dd19..dded8e3 100644 --- a/third_party/WebKit/LayoutTests/platform/mac-retina/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac-retina/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE ERROR: line 56: Discontiguous selection is not supported. PASS repainted when expected FAIL did not repaint when expected PASS repainted when expected
diff --git a/third_party/WebKit/LayoutTests/platform/mac/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt index f97dd19..dded8e3 100644 --- a/third_party/WebKit/LayoutTests/platform/mac/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/mac/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE ERROR: line 56: Discontiguous selection is not supported. PASS repainted when expected FAIL did not repaint when expected PASS repainted when expected
diff --git a/third_party/WebKit/LayoutTests/platform/mac/editing/selection/addRange-expected.png b/third_party/WebKit/LayoutTests/platform/mac/editing/selection/addRange-expected.png deleted file mode 100644 index 020b5b0..0000000 --- a/third_party/WebKit/LayoutTests/platform/mac/editing/selection/addRange-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/mac/editing/selection/addRange-expected.txt b/third_party/WebKit/LayoutTests/platform/mac/editing/selection/addRange-expected.txt deleted file mode 100644 index 8ef877cf8..0000000 --- a/third_party/WebKit/LayoutTests/platform/mac/editing/selection/addRange-expected.txt +++ /dev/null
@@ -1,19 +0,0 @@ -CONSOLE WARNING: line 17: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 28: Discontiguous selection is not supported. -CONSOLE ERROR: line 34: Discontiguous selection is not supported. -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584 - LayoutBlockFlow {P} at (0,0) size 784x36 - LayoutText {#text} at (0,0) size 777x36 - text run at (0,0) width 216: "This tests Selection::addRange(). " - text run at (215,0) width 562: "It should have no effect if the range passed to it does not intersect the currently selected" - text run at (0,18) width 44: "range. " - text run at (43,18) width 164: "'3456' should be selected." - LayoutBlockFlow {DIV} at (0,52) size 784x18 - LayoutText {#text} at (0,0) size 72x18 - text run at (0,0) width 72: "123456789" -selection start: position 2 of child 0 {#text} of child 2 {DIV} of body -selection end: position 6 of child 0 {#text} of child 2 {DIV} of body
diff --git a/third_party/WebKit/LayoutTests/platform/win/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt b/third_party/WebKit/LayoutTests/platform/win/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt index f97dd19..dded8e3 100644 --- a/third_party/WebKit/LayoutTests/platform/win/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE ERROR: line 56: Discontiguous selection is not supported. PASS repainted when expected FAIL did not repaint when expected PASS repainted when expected
diff --git a/third_party/WebKit/LayoutTests/platform/win/editing/selection/addRange-expected.png b/third_party/WebKit/LayoutTests/platform/win/editing/selection/addRange-expected.png deleted file mode 100644 index a58fa9b..0000000 --- a/third_party/WebKit/LayoutTests/platform/win/editing/selection/addRange-expected.png +++ /dev/null Binary files differ
diff --git a/third_party/WebKit/LayoutTests/platform/win/editing/selection/addRange-expected.txt b/third_party/WebKit/LayoutTests/platform/win/editing/selection/addRange-expected.txt deleted file mode 100644 index cac62d66..0000000 --- a/third_party/WebKit/LayoutTests/platform/win/editing/selection/addRange-expected.txt +++ /dev/null
@@ -1,19 +0,0 @@ -CONSOLE WARNING: line 17: The behavior that Selection.addRange() merges existing Range and the specified Range is deprecated and will be removed in M58, around April 2017. See https://www.chromestatus.com/features/6680566019653632 for more details. -CONSOLE ERROR: line 28: Discontiguous selection is not supported. -CONSOLE ERROR: line 34: Discontiguous selection is not supported. -layer at (0,0) size 800x600 - LayoutView at (0,0) size 800x600 -layer at (0,0) size 800x600 - LayoutBlockFlow {HTML} at (0,0) size 800x600 - LayoutBlockFlow {BODY} at (8,8) size 784x584 - LayoutBlockFlow {P} at (0,0) size 784x36 - LayoutText {#text} at (0,0) size 777x35 - text run at (0,0) width 216: "This tests Selection::addRange(). " - text run at (215,0) width 562: "It should have no effect if the range passed to it does not intersect the currently selected" - text run at (0,18) width 44: "range. " - text run at (43,18) width 164: "'3456' should be selected." - LayoutBlockFlow {DIV} at (0,52) size 784x18 - LayoutText {#text} at (0,0) size 72x17 - text run at (0,0) width 72: "123456789" -selection start: position 2 of child 0 {#text} of child 2 {DIV} of body -selection end: position 6 of child 0 {#text} of child 2 {DIV} of body
diff --git a/third_party/WebKit/LayoutTests/platform/win7/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt b/third_party/WebKit/LayoutTests/platform/win7/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt index f97dd19..dded8e3 100644 --- a/third_party/WebKit/LayoutTests/platform/win7/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt +++ b/third_party/WebKit/LayoutTests/platform/win7/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE ERROR: line 56: Discontiguous selection is not supported. PASS repainted when expected FAIL did not repaint when expected PASS repainted when expected
diff --git a/third_party/WebKit/LayoutTests/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt b/third_party/WebKit/LayoutTests/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt index f97dd19..dded8e3 100644 --- a/third_party/WebKit/LayoutTests/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt +++ b/third_party/WebKit/LayoutTests/virtual/prefer_compositing_to_lcd_text/compositing/overflow/do-not-repaint-if-scrolling-composited-layers-expected.txt
@@ -1,4 +1,3 @@ -CONSOLE ERROR: line 56: Discontiguous selection is not supported. PASS repainted when expected FAIL did not repaint when expected PASS repainted when expected
diff --git a/third_party/WebKit/Source/core/css/RuleFeature.cpp b/third_party/WebKit/Source/core/css/RuleFeature.cpp index ec4bba5..9a9dffcd 100644 --- a/third_party/WebKit/Source/core/css/RuleFeature.cpp +++ b/third_party/WebKit/Source/core/css/RuleFeature.cpp
@@ -480,12 +480,23 @@ void RuleFeatureSet::updateRuleSetInvalidation( const InvalidationSetFeatures& features) { - if (!features.hasFeaturesForRuleSetInvalidation) { - if (features.forceSubtree || features.tagNames.isEmpty()) - m_metadata.needsFullRecalcForRuleSetInvalidation = true; - else - addTagNamesToTypeRuleInvalidationSet(features.tagNames); + if (features.hasFeaturesForRuleSetInvalidation) + return; + if (features.forceSubtree || + (!features.customPseudoElement && features.tagNames.isEmpty())) { + m_metadata.needsFullRecalcForRuleSetInvalidation = true; + return; } + + ensureTypeRuleInvalidationSet(); + + if (features.customPseudoElement) { + m_typeRuleInvalidationSet->setCustomPseudoInvalid(); + m_typeRuleInvalidationSet->setTreeBoundaryCrossing(); + } + + for (auto tagName : features.tagNames) + m_typeRuleInvalidationSet->addTagName(tagName); } void RuleFeatureSet::updateInvalidationSetsForContentAttribute( @@ -1167,14 +1178,6 @@ descendantFeatures); } -void RuleFeatureSet::addTagNamesToTypeRuleInvalidationSet( - const Vector<AtomicString>& tagNames) { - DCHECK(!tagNames.isEmpty()); - ensureTypeRuleInvalidationSet(); - for (auto tagName : tagNames) - m_typeRuleInvalidationSet->addTagName(tagName); -} - DEFINE_TRACE(RuleFeatureSet) { visitor->trace(m_siblingRules); visitor->trace(m_uncommonAttributeRules);
diff --git a/third_party/WebKit/Source/core/css/RuleFeature.h b/third_party/WebKit/Source/core/css/RuleFeature.h index 40bd9bd..f0f4fee2 100644 --- a/third_party/WebKit/Source/core/css/RuleFeature.h +++ b/third_party/WebKit/Source/core/css/RuleFeature.h
@@ -281,7 +281,6 @@ const InvalidationSetFeatures& descendantFeatures); void updateRuleSetInvalidation(const InvalidationSetFeatures&); - void addTagNamesToTypeRuleInvalidationSet(const Vector<AtomicString>&); FeatureMetadata m_metadata; InvalidationSetMap m_classInvalidationSets;
diff --git a/third_party/WebKit/Source/core/css/RuleFeatureSetTest.cpp b/third_party/WebKit/Source/core/css/RuleFeatureSetTest.cpp index 2ba63294..756a650 100644 --- a/third_party/WebKit/Source/core/css/RuleFeatureSetTest.cpp +++ b/third_party/WebKit/Source/core/css/RuleFeatureSetTest.cpp
@@ -1000,7 +1000,7 @@ TEST_F(RuleFeatureSetTest, RuleSetInvalidationCustomPseudo) { EXPECT_EQ(RuleFeatureSet::SelectorMayMatch, collectFeatures("::-webkit-slider-thumb")); - expectFullRecalcForRuleSetInvalidation(true); + expectFullRecalcForRuleSetInvalidation(false); clearFeatures(); EXPECT_EQ(RuleFeatureSet::SelectorMayMatch,
diff --git a/third_party/WebKit/Source/core/dom/StyleEngineTest.cpp b/third_party/WebKit/Source/core/dom/StyleEngineTest.cpp index 7859ffbc..60f4c16 100644 --- a/third_party/WebKit/Source/core/dom/StyleEngineTest.cpp +++ b/third_party/WebKit/Source/core/dom/StyleEngineTest.cpp
@@ -184,6 +184,23 @@ EXPECT_EQ(1u, afterCount - beforeCount); } +TEST_F(StyleEngineTest, RuleSetInvalidationCustomPseudo) { + document().body()->setInnerHTML( + "<style>progress { -webkit-appearance:none }</style>" + "<progress></progress>" + "<div></div><div></div><div></div><div></div><div></div><div></div>"); + + document().view()->updateAllLifecyclePhases(); + + unsigned beforeCount = styleEngine().styleForElementCount(); + EXPECT_EQ(scheduleInvalidationsForRules( + document(), "::-webkit-progress-bar { background: green }"), + RuleSetInvalidationsScheduled); + document().view()->updateAllLifecyclePhases(); + unsigned afterCount = styleEngine().styleForElementCount(); + EXPECT_EQ(3u, afterCount - beforeCount); +} + TEST_F(StyleEngineTest, RuleSetInvalidationHost) { document().body()->setInnerHTML("<div id=nohost></div><div id=host></div>"); Element* host = document().getElementById("host");
diff --git a/third_party/WebKit/Source/core/editing/DOMSelection.cpp b/third_party/WebKit/Source/core/editing/DOMSelection.cpp index ae43837..e148177 100644 --- a/third_party/WebKit/Source/core/editing/DOMSelection.cpp +++ b/third_party/WebKit/Source/core/editing/DOMSelection.cpp
@@ -66,6 +66,8 @@ m_treeScope = nullptr; } +// TODO(editing-dev): The behavior after loosing browsing context is not +// specified. https://github.com/w3c/selection-api/issues/82 bool DOMSelection::isAvailable() const { return frame() && frame()->selection().isAvailable(); } @@ -434,6 +436,9 @@ int offset, ExceptionState& exceptionState) { DCHECK(node); + if (!isAvailable()) + return; + // 1. If node's root is not the document associated with the context object, // abort these steps. if (!isValidForPosition(node)) @@ -611,7 +616,7 @@ // no longer performs synchronous layout by itself. frame()->document()->updateStyleAndLayoutIgnorePendingStylesheets(); - if (selection.isNone()) { + if (rangeCount() == 0) { selection.setSelectedRange(EphemeralRange(newRange), VP_DEFAULT_AFFINITY); cacheRangeIfSelectionOfDocument(newRange); return; @@ -619,17 +624,8 @@ Range* originalRange = selection.firstRange(); - if (originalRange->startContainer()->document() != - newRange->startContainer()->document()) { - addConsoleError( - "The given range does not belong to the current selection's document."); - return; - } if (originalRange->startContainer()->treeScope() != newRange->startContainer()->treeScope()) { - addConsoleError( - "The given range and the current selection belong to two different " - "document fragments."); return; } @@ -637,32 +633,14 @@ ASSERT_NO_EXCEPTION) < 0 || newRange->compareBoundaryPoints(Range::kStartToEnd, originalRange, ASSERT_NO_EXCEPTION) < 0) { - addConsoleError("Discontiguous selection is not supported."); return; } - // FIXME: "Merge the ranges if they intersect" is Blink-specific behavior; - // other browsers supporting discontiguous selection (obviously) keep each - // Range added and return it in getRangeAt(). But it's unclear if we can - // really do the same, since we don't support discontiguous selection. Further - // discussions at + // TODO(tkent): "Merge the ranges if they intersect" was removed. We show a + // warning message for a while, and continue to collect the usage data. // <https://code.google.com/p/chromium/issues/detail?id=353069>. Deprecation::countDeprecation(frame(), UseCounter::SelectionAddRangeIntersect); - - Range* start = originalRange->compareBoundaryPoints( - Range::kStartToStart, newRange, ASSERT_NO_EXCEPTION) < 0 - ? originalRange - : newRange; - Range* end = originalRange->compareBoundaryPoints(Range::kEndToEnd, newRange, - ASSERT_NO_EXCEPTION) < 0 - ? newRange - : originalRange; - const EphemeralRange merged = - EphemeralRange(start->startPosition(), end->endPosition()); - TextAffinity affinity = selection.selection().affinity(); - selection.setSelectedRange(merged, affinity); - cacheRangeIfSelectionOfDocument(createRange(merged)); } void DOMSelection::deleteFromDocument() {
diff --git a/third_party/WebKit/Source/core/editing/FrameSelection.cpp b/third_party/WebKit/Source/core/editing/FrameSelection.cpp index 89a0135c..bef7a92 100644 --- a/third_party/WebKit/Source/core/editing/FrameSelection.cpp +++ b/third_party/WebKit/Source/core/editing/FrameSelection.cpp
@@ -119,26 +119,6 @@ return selectionInDOMTree().isHandleVisible(); } -// TODO(yosin): We should replace |visibleSelection<EditingStrategy>()| to -// |computeVisibleSelectionInDOMTree()|. -// TODO(yosin): To avoid undefined symbols in clang, we explicitly -// have specialized version of |FrameSelection::visibleSelection<Strategy>| -// before |FrameSelection::selection()| which refers this. -template <> -const VisibleSelection& FrameSelection::visibleSelection<EditingStrategy>() - const { - return m_selectionEditor->visibleSelection<EditingStrategy>(); -} - -// TODO(yosin): We should replace -// |visibleSelection<EditingInFlatTreeStrategy>()| with -// |computeVisibleSelectionInFlatTree()|. -template <> -const VisibleSelectionInFlatTree& -FrameSelection::visibleSelection<EditingInFlatTreeStrategy>() const { - return m_selectionEditor->visibleSelection<EditingInFlatTreeStrategy>(); -} - const VisibleSelection& FrameSelection::computeVisibleSelectionInDOMTree() const { return m_selectionEditor->computeVisibleSelectionInDOMTree(); @@ -177,7 +157,7 @@ } const VisibleSelectionInFlatTree& FrameSelection::selectionInFlatTree() const { - return visibleSelection<EditingInFlatTreeStrategy>(); + return computeVisibleSelectionInFlatTree(); } void FrameSelection::moveCaretSelection(const IntPoint& point) { @@ -343,17 +323,6 @@ options, align, granularity); } -// TODO(yosin): We should move |computePositionForChildrenRemoval()| to -// "SelectionEditor.cpp" since it used only in -// |SelectionEditor::nodeChildrenWillBeRemoved()|. -static Position computePositionForChildrenRemoval(const Position& position, - ContainerNode& container) { - Node* node = position.computeContainerNode(); - if (container.containsIncludingHostElements(*node)) - return Position::firstPositionInNode(&container); - return position; -} - void FrameSelection::nodeChildrenWillBeRemoved(ContainerNode& container) { if (!container.inActiveDocument()) return; @@ -363,55 +332,6 @@ TypingCommand::closeTyping(m_frame); } -// TODO(yosin): We should move |SelectionEditor::nodeChildrenWillBeRemoved()| -// to "SelectionEditor.cpp". -void SelectionEditor::nodeChildrenWillBeRemoved(ContainerNode& container) { - if (m_selection.isNone()) - return; - const Position oldBase = m_selection.m_base; - const Position oldExtent = m_selection.m_extent; - const Position& newBase = - computePositionForChildrenRemoval(oldBase, container); - const Position& newExtent = - computePositionForChildrenRemoval(oldExtent, container); - if (newBase == oldBase && newExtent == oldExtent) - return; - m_selection = SelectionInDOMTree::Builder() - .setBaseAndExtent(newBase, newExtent) - .build(); - markCacheDirty(); -} - -// TODO(yosin): We should move |computePositionForChildrenRemoval()| with -// |nodeWillBeRemoved()| to "SelectionEditor.cpp". -static Position computePositionForNodeRemoval(const Position& position, - Node& nodeToBeRemoved) { - Position result = position; - // TODO(yosin): We should rename |updatePositionForNodeRemoval()| - // to |computePositionForNodeRemoval()| to avoid using output parameter. - updatePositionForNodeRemoval(result, nodeToBeRemoved); - return result; -} - -// TODO(yosin): We should move |nodeWillBeRemoved()| to -// "SelectionEditor.cpp". -void SelectionEditor::nodeWillBeRemoved(Node& nodeToBeRemoved) { - if (m_selection.isNone()) - return; - const Position oldBase = m_selection.m_base; - const Position oldExtent = m_selection.m_extent; - const Position& newBase = - computePositionForNodeRemoval(oldBase, nodeToBeRemoved); - const Position& newExtent = - computePositionForNodeRemoval(oldExtent, nodeToBeRemoved); - if (newBase == oldBase && newExtent == oldExtent) - return; - m_selection = SelectionInDOMTree::Builder() - .setBaseAndExtent(newBase, newExtent) - .build(); - markCacheDirty(); -} - void FrameSelection::nodeWillBeRemoved(Node& node) { // There can't be a selection inside a fragment, so if a fragment's node is // being removed, the selection in the document that created the fragment @@ -424,163 +344,6 @@ TypingCommand::closeTyping(m_frame); } -// TODO(yosin): We should move |updatePositionAfterAdoptingTextReplacement()| -// to "SelectionEditor.cpp" since it used only in -// |SelectionEditor::didUpdateCharacterData()|. -static Position updatePositionAfterAdoptingTextReplacement( - const Position& position, - CharacterData* node, - unsigned offset, - unsigned oldLength, - unsigned newLength) { - if (position.anchorNode() != node) - return position; - - if (position.isBeforeAnchor()) { - return updatePositionAfterAdoptingTextReplacement( - Position(node, 0), node, offset, oldLength, newLength); - } - if (position.isAfterAnchor()) { - return updatePositionAfterAdoptingTextReplacement( - Position(node, oldLength), node, offset, oldLength, newLength); - } - - // See: - // http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Mutation - DCHECK_GE(position.offsetInContainerNode(), 0); - unsigned positionOffset = - static_cast<unsigned>(position.offsetInContainerNode()); - // Replacing text can be viewed as a deletion followed by insertion. - if (positionOffset >= offset && positionOffset <= offset + oldLength) - positionOffset = offset; - - // Adjust the offset if the position is after the end of the deleted contents - // (positionOffset > offset + oldLength) to avoid having a stale offset. - if (positionOffset > offset + oldLength) - positionOffset = positionOffset - oldLength + newLength; - - // Due to case folding - // (http://unicode.org/Public/UCD/latest/ucd/CaseFolding.txt), LayoutText - // length may be different from Text length. A correct implementation would - // translate the LayoutText offset to a Text offset; this is just a safety - // precaution to avoid offset values that run off the end of the Text. - if (positionOffset > node->length()) - positionOffset = node->length(); - - return Position(node, positionOffset); -} - -// TODO(yosin): We should move |didUpdateCharacterData()| to -// "SelectionEditor.cpp". -void SelectionEditor::didUpdateCharacterData(CharacterData* node, - unsigned offset, - unsigned oldLength, - unsigned newLength) { - // The fragment check is a performance optimization. See - // http://trac.webkit.org/changeset/30062. - if (m_selection.isNone() || !node || !node->isConnected()) { - didFinishDOMMutation(); - return; - } - const Position& newBase = updatePositionAfterAdoptingTextReplacement( - m_selection.m_base, node, offset, oldLength, newLength); - const Position& newExtent = updatePositionAfterAdoptingTextReplacement( - m_selection.m_extent, node, offset, oldLength, newLength); - didFinishTextChange(newBase, newExtent); -} - -// TODO(yosin): We should move |updatePostionAfterAdoptingTextNodesMerged()| -// to "SelectionEditor.cpp" since it used only in -// |SelectionEditor::didMergeTextNodes()|. -// TODO(yosin): We should introduce |Position(const Text&, int)| to avoid -// |const_cast<Text*>|. -static Position updatePostionAfterAdoptingTextNodesMerged( - const Position& position, - const Text& mergedNode, - const NodeWithIndex& nodeToBeRemovedWithIndex, - unsigned oldLength) { - Node* const anchorNode = position.anchorNode(); - const Node& nodeToBeRemoved = nodeToBeRemovedWithIndex.node(); - switch (position.anchorType()) { - case PositionAnchorType::BeforeChildren: - case PositionAnchorType::AfterChildren: - return position; - case PositionAnchorType::BeforeAnchor: - if (anchorNode == nodeToBeRemoved) - return Position(const_cast<Text*>(&mergedNode), mergedNode.length()); - return position; - case PositionAnchorType::AfterAnchor: - if (anchorNode == nodeToBeRemoved) - return Position(const_cast<Text*>(&mergedNode), mergedNode.length()); - if (anchorNode == mergedNode) - return Position(const_cast<Text*>(&mergedNode), oldLength); - return position; - case PositionAnchorType::OffsetInAnchor: { - const int offset = position.offsetInContainerNode(); - if (anchorNode == nodeToBeRemoved) - return Position(const_cast<Text*>(&mergedNode), oldLength + offset); - if (anchorNode == nodeToBeRemoved.parentNode() && - offset == nodeToBeRemovedWithIndex.index()) { - return Position(const_cast<Text*>(&mergedNode), oldLength); - } - return position; - } - } - NOTREACHED() << position; - return position; -} - -// TODO(yosin): We should move |SelectionEditor::didMergeTextNodes()| to -// "SelectionEditor.cpp". -void SelectionEditor::didMergeTextNodes( - const Text& mergedNode, - const NodeWithIndex& nodeToBeRemovedWithIndex, - unsigned oldLength) { - if (m_selection.isNone()) { - didFinishDOMMutation(); - return; - } - const Position& newBase = updatePostionAfterAdoptingTextNodesMerged( - m_selection.m_base, mergedNode, nodeToBeRemovedWithIndex, oldLength); - const Position& newExtent = updatePostionAfterAdoptingTextNodesMerged( - m_selection.m_extent, mergedNode, nodeToBeRemovedWithIndex, oldLength); - didFinishTextChange(newBase, newExtent); -} - -// TODO(yosin): We should move |updatePostionAfterAdoptingTextNodeSplit()| -// to "SelectionEditor.cpp" since it used only in -// |SelectionEditor::didSplitTextNode()|. -static Position updatePostionAfterAdoptingTextNodeSplit( - const Position& position, - const Text& oldNode) { - if (!position.anchorNode() || position.anchorNode() != &oldNode || - !position.isOffsetInAnchor()) - return position; - // See: - // http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Mutation - DCHECK_GE(position.offsetInContainerNode(), 0); - unsigned positionOffset = - static_cast<unsigned>(position.offsetInContainerNode()); - unsigned oldLength = oldNode.length(); - if (positionOffset <= oldLength) - return position; - return Position(toText(oldNode.nextSibling()), positionOffset - oldLength); -} - -// TODO(yosin): We should move |SelectionEditor::didSplitTextNode()| to -// "SelectionEditor.cpp". -void SelectionEditor::didSplitTextNode(const Text& oldNode) { - if (m_selection.isNone() || !oldNode.isConnected()) { - didFinishDOMMutation(); - return; - } - const Position& newBase = - updatePostionAfterAdoptingTextNodeSplit(m_selection.m_base, oldNode); - const Position& newExtent = - updatePostionAfterAdoptingTextNodeSplit(m_selection.m_extent, oldNode); - didFinishTextChange(newBase, newExtent); -} - void FrameSelection::didChangeFocus() { // Hits in // virtual/gpu/compositedscrolling/scrollbars/scrollbar-miss-mousemove-disabled.html @@ -729,7 +492,7 @@ // Treat a collapsed selection like no selection. const VisibleSelectionInFlatTree& visibleSelection = - this->visibleSelection<EditingInFlatTreeStrategy>(); + computeVisibleSelectionInFlatTree(); if (!visibleSelection.isRange()) return false; @@ -1083,7 +846,7 @@ static String extractSelectedText(const FrameSelection& selection, TextIteratorBehavior behavior) { const VisibleSelectionInFlatTree& visibleSelection = - selection.visibleSelection<EditingInFlatTreeStrategy>(); + selection.computeVisibleSelectionInFlatTree(); const EphemeralRangeInFlatTree& range = visibleSelection.toNormalizedEphemeralRange(); // We remove '\0' characters because they are not visibly rendered to the @@ -1093,7 +856,7 @@ String FrameSelection::selectedHTMLForClipboard() const { const VisibleSelectionInFlatTree& visibleSelection = - this->visibleSelection<EditingInFlatTreeStrategy>(); + computeVisibleSelectionInFlatTree(); const EphemeralRangeInFlatTree& range = visibleSelection.toNormalizedEphemeralRange(); return createMarkup(range.startPosition(), range.endPosition(),
diff --git a/third_party/WebKit/Source/core/editing/FrameSelection.h b/third_party/WebKit/Source/core/editing/FrameSelection.h index ad429ce..1d74004 100644 --- a/third_party/WebKit/Source/core/editing/FrameSelection.h +++ b/third_party/WebKit/Source/core/editing/FrameSelection.h
@@ -118,8 +118,6 @@ // An implementation of |WebFrame::moveCaretSelection()| void moveCaretSelection(const IntPoint&); - template <typename Strategy> - const VisibleSelectionTemplate<Strategy>& visibleSelection() const; const VisibleSelection& computeVisibleSelectionInDOMTree() const; const VisibleSelectionInFlatTree& computeVisibleSelectionInFlatTree() const;
diff --git a/third_party/WebKit/Source/core/editing/PendingSelection.cpp b/third_party/WebKit/Source/core/editing/PendingSelection.cpp index da2ae73..2a98762 100644 --- a/third_party/WebKit/Source/core/editing/PendingSelection.cpp +++ b/third_party/WebKit/Source/core/editing/PendingSelection.cpp
@@ -113,7 +113,7 @@ m_hasPendingSelection = false; const VisibleSelectionInFlatTree& originalSelection = - m_frameSelection->visibleSelection<EditingInFlatTreeStrategy>(); + m_frameSelection->computeVisibleSelectionInFlatTree(); // Skip if pending VisibilePositions became invalid before we reach here. if (!isSelectionInDocument(originalSelection, layoutView.document()))
diff --git a/third_party/WebKit/Source/core/editing/SelectionController.cpp b/third_party/WebKit/Source/core/editing/SelectionController.cpp index b57c8ab..5328509 100644 --- a/third_party/WebKit/Source/core/editing/SelectionController.cpp +++ b/third_party/WebKit/Source/core/editing/SelectionController.cpp
@@ -175,7 +175,7 @@ PositionInFlatTree::firstPositionInOrBeforeNode(innerNode)) : visibleHitPos; const VisibleSelectionInFlatTree& selection = - this->selection().visibleSelection<EditingInFlatTreeStrategy>(); + this->selection().computeVisibleSelectionInFlatTree(); // Don't restart the selection when the mouse is pressed on an // existing selection so we can allow for text dragging. @@ -359,10 +359,7 @@ // Special case to limit selection to the containing block for SVG text. // FIXME: Isn't there a better non-SVG-specific way to do this? if (Node* selectionBaseNode = - selection() - .visibleSelection<EditingInFlatTreeStrategy>() - .base() - .anchorNode()) { + selection().computeVisibleSelectionInFlatTree().base().anchorNode()) { if (LayoutObject* selectionBaseLayoutObject = selectionBaseNode->layoutObject()) { if (selectionBaseLayoutObject->isSVGText()) { @@ -387,8 +384,7 @@ m_selectionState = SelectionState::ExtendedSelection; basePosition = targetPosition.deepEquivalent(); } else { - basePosition = - selection().visibleSelection<EditingInFlatTreeStrategy>().base(); + basePosition = selection().computeVisibleSelectionInFlatTree().base(); } const SelectionInFlatTree& appliedSelection = applySelectAll( basePosition, targetPosition.deepEquivalent(), mousePressNode, @@ -674,7 +670,7 @@ newSelection.setBase(newBase); newSelection.setExtent(newExtent); } else if (originalBase.isNotNull()) { - if (selection().visibleSelection<EditingInFlatTreeStrategy>().base() == + if (selection().computeVisibleSelectionInFlatTree().base() == newSelection.base()) newSelection.setBase(originalBase); m_originalBaseInFlatTree = VisiblePositionInFlatTree(); @@ -683,8 +679,7 @@ // Adjusting base and extent will make newSelection always directional newSelection.setIsDirectional(isDirectional); const bool isHandleVisible = handleVisibility == HandleVisibility::Visible; - if (selection().visibleSelection<EditingInFlatTreeStrategy>() == - newSelection && + if (selection().computeVisibleSelectionInFlatTree() == newSelection && selection().isHandleVisible() == isHandleVisible) return; @@ -872,7 +867,7 @@ builder.collapse(pos.toPositionWithAffinity()); } - if (selection().visibleSelection<EditingInFlatTreeStrategy>() != + if (selection().computeVisibleSelectionInFlatTree() != createVisibleSelection(builder.build())) { selection().setSelection(builder.build()); }
diff --git a/third_party/WebKit/Source/core/editing/SelectionEditor.cpp b/third_party/WebKit/Source/core/editing/SelectionEditor.cpp index 3cbe4ec..3835d067 100644 --- a/third_party/WebKit/Source/core/editing/SelectionEditor.cpp +++ b/third_party/WebKit/Source/core/editing/SelectionEditor.cpp
@@ -178,6 +178,199 @@ m_cacheIsDirty = false; } +static Position computePositionForChildrenRemoval(const Position& position, + ContainerNode& container) { + Node* node = position.computeContainerNode(); + if (container.containsIncludingHostElements(*node)) + return Position::firstPositionInNode(&container); + return position; +} + +void SelectionEditor::nodeChildrenWillBeRemoved(ContainerNode& container) { + if (m_selection.isNone()) + return; + const Position oldBase = m_selection.m_base; + const Position oldExtent = m_selection.m_extent; + const Position& newBase = + computePositionForChildrenRemoval(oldBase, container); + const Position& newExtent = + computePositionForChildrenRemoval(oldExtent, container); + if (newBase == oldBase && newExtent == oldExtent) + return; + m_selection = SelectionInDOMTree::Builder() + .setBaseAndExtent(newBase, newExtent) + .build(); + markCacheDirty(); +} + +static Position computePositionForNodeRemoval(const Position& position, + Node& nodeToBeRemoved) { + Position result = position; + // TODO(yosin): We should rename |updatePositionForNodeRemoval()| + // to |computePositionForNodeRemoval()| to avoid using output parameter. + updatePositionForNodeRemoval(result, nodeToBeRemoved); + return result; +} + +void SelectionEditor::nodeWillBeRemoved(Node& nodeToBeRemoved) { + if (m_selection.isNone()) + return; + const Position oldBase = m_selection.m_base; + const Position oldExtent = m_selection.m_extent; + const Position& newBase = + computePositionForNodeRemoval(oldBase, nodeToBeRemoved); + const Position& newExtent = + computePositionForNodeRemoval(oldExtent, nodeToBeRemoved); + if (newBase == oldBase && newExtent == oldExtent) + return; + m_selection = SelectionInDOMTree::Builder() + .setBaseAndExtent(newBase, newExtent) + .build(); + markCacheDirty(); +} + +static Position updatePositionAfterAdoptingTextReplacement( + const Position& position, + CharacterData* node, + unsigned offset, + unsigned oldLength, + unsigned newLength) { + if (position.anchorNode() != node) + return position; + + if (position.isBeforeAnchor()) { + return updatePositionAfterAdoptingTextReplacement( + Position(node, 0), node, offset, oldLength, newLength); + } + if (position.isAfterAnchor()) { + return updatePositionAfterAdoptingTextReplacement( + Position(node, oldLength), node, offset, oldLength, newLength); + } + + // See: + // http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Mutation + DCHECK_GE(position.offsetInContainerNode(), 0); + unsigned positionOffset = + static_cast<unsigned>(position.offsetInContainerNode()); + // Replacing text can be viewed as a deletion followed by insertion. + if (positionOffset >= offset && positionOffset <= offset + oldLength) + positionOffset = offset; + + // Adjust the offset if the position is after the end of the deleted contents + // (positionOffset > offset + oldLength) to avoid having a stale offset. + if (positionOffset > offset + oldLength) + positionOffset = positionOffset - oldLength + newLength; + + // Due to case folding + // (http://unicode.org/Public/UCD/latest/ucd/CaseFolding.txt), LayoutText + // length may be different from Text length. A correct implementation would + // translate the LayoutText offset to a Text offset; this is just a safety + // precaution to avoid offset values that run off the end of the Text. + if (positionOffset > node->length()) + positionOffset = node->length(); + + return Position(node, positionOffset); +} + +void SelectionEditor::didUpdateCharacterData(CharacterData* node, + unsigned offset, + unsigned oldLength, + unsigned newLength) { + // The fragment check is a performance optimization. See + // http://trac.webkit.org/changeset/30062. + if (m_selection.isNone() || !node || !node->isConnected()) { + didFinishDOMMutation(); + return; + } + const Position& newBase = updatePositionAfterAdoptingTextReplacement( + m_selection.m_base, node, offset, oldLength, newLength); + const Position& newExtent = updatePositionAfterAdoptingTextReplacement( + m_selection.m_extent, node, offset, oldLength, newLength); + didFinishTextChange(newBase, newExtent); +} + +// TODO(yosin): We should introduce |Position(const Text&, int)| to avoid +// |const_cast<Text*>|. +static Position updatePostionAfterAdoptingTextNodesMerged( + const Position& position, + const Text& mergedNode, + const NodeWithIndex& nodeToBeRemovedWithIndex, + unsigned oldLength) { + Node* const anchorNode = position.anchorNode(); + const Node& nodeToBeRemoved = nodeToBeRemovedWithIndex.node(); + switch (position.anchorType()) { + case PositionAnchorType::BeforeChildren: + case PositionAnchorType::AfterChildren: + return position; + case PositionAnchorType::BeforeAnchor: + if (anchorNode == nodeToBeRemoved) + return Position(const_cast<Text*>(&mergedNode), mergedNode.length()); + return position; + case PositionAnchorType::AfterAnchor: + if (anchorNode == nodeToBeRemoved) + return Position(const_cast<Text*>(&mergedNode), mergedNode.length()); + if (anchorNode == mergedNode) + return Position(const_cast<Text*>(&mergedNode), oldLength); + return position; + case PositionAnchorType::OffsetInAnchor: { + const int offset = position.offsetInContainerNode(); + if (anchorNode == nodeToBeRemoved) + return Position(const_cast<Text*>(&mergedNode), oldLength + offset); + if (anchorNode == nodeToBeRemoved.parentNode() && + offset == nodeToBeRemovedWithIndex.index()) { + return Position(const_cast<Text*>(&mergedNode), oldLength); + } + return position; + } + } + NOTREACHED() << position; + return position; +} + +void SelectionEditor::didMergeTextNodes( + const Text& mergedNode, + const NodeWithIndex& nodeToBeRemovedWithIndex, + unsigned oldLength) { + if (m_selection.isNone()) { + didFinishDOMMutation(); + return; + } + const Position& newBase = updatePostionAfterAdoptingTextNodesMerged( + m_selection.m_base, mergedNode, nodeToBeRemovedWithIndex, oldLength); + const Position& newExtent = updatePostionAfterAdoptingTextNodesMerged( + m_selection.m_extent, mergedNode, nodeToBeRemovedWithIndex, oldLength); + didFinishTextChange(newBase, newExtent); +} + +static Position updatePostionAfterAdoptingTextNodeSplit( + const Position& position, + const Text& oldNode) { + if (!position.anchorNode() || position.anchorNode() != &oldNode || + !position.isOffsetInAnchor()) + return position; + // See: + // http://www.w3.org/TR/DOM-Level-2-Traversal-Range/ranges.html#Level-2-Range-Mutation + DCHECK_GE(position.offsetInContainerNode(), 0); + unsigned positionOffset = + static_cast<unsigned>(position.offsetInContainerNode()); + unsigned oldLength = oldNode.length(); + if (positionOffset <= oldLength) + return position; + return Position(toText(oldNode.nextSibling()), positionOffset - oldLength); +} + +void SelectionEditor::didSplitTextNode(const Text& oldNode) { + if (m_selection.isNone() || !oldNode.isConnected()) { + didFinishDOMMutation(); + return; + } + const Position& newBase = + updatePostionAfterAdoptingTextNodeSplit(m_selection.m_base, oldNode); + const Position& newExtent = + updatePostionAfterAdoptingTextNodeSplit(m_selection.m_extent, oldNode); + didFinishTextChange(newBase, newExtent); +} + void SelectionEditor::resetLogicalRange() { // Non-collapsed ranges are not allowed to start at the end of a line that // is wrapped, they start at the beginning of the next line instead
diff --git a/third_party/WebKit/Source/core/frame/Deprecation.cpp b/third_party/WebKit/Source/core/frame/Deprecation.cpp index 79bdd6a..86fb5c4 100644 --- a/third_party/WebKit/Source/core/frame/Deprecation.cpp +++ b/third_party/WebKit/Source/core/frame/Deprecation.cpp
@@ -418,10 +418,10 @@ return willBeRemoved("\"zoom: document\"", M59, "4997605029314560"); case UseCounter::SelectionAddRangeIntersect: - return willBeRemoved( - "The behavior that Selection.addRange() merges existing Range and " - "the specified Range", - M58, "6680566019653632"); + return "The behavior that Selection.addRange() merges existing Range and " + "the specified Range was removed. See " + "https://www.chromestatus.com/features/6680566019653632 for more " + "details."; // Features that aren't deprecated don't have a deprecation message. default:
diff --git a/third_party/WebKit/Source/core/loader/BUILD.gn b/third_party/WebKit/Source/core/loader/BUILD.gn index e0e57be8..be6e6a63 100644 --- a/third_party/WebKit/Source/core/loader/BUILD.gn +++ b/third_party/WebKit/Source/core/loader/BUILD.gn
@@ -7,7 +7,6 @@ blink_core_sources("loader") { sources = [ "CookieJar.cpp", - "CrossOriginPreflightResultCache.cpp", "DocumentLoadTiming.cpp", "DocumentLoader.cpp", "DocumentThreadableLoader.cpp", @@ -17,8 +16,6 @@ "EmptyClients.cpp", "EmptyClients.h", "FormSubmission.cpp", - "FrameClientHintsPreferencesContext.cpp", - "FrameClientHintsPreferencesContext.h", "FrameFetchContext.cpp", "FrameFetchContext.h", "FrameLoadRequest.cpp", @@ -41,8 +38,6 @@ "NavigationScheduler.cpp", "PingLoader.cpp", "PingLoader.h", - "PrerenderHandle.cpp", - "PrerenderHandle.h", "PrerendererClient.cpp", "PrerendererClient.h", "ProgressTracker.cpp", @@ -63,6 +58,12 @@ "appcache/ApplicationCacheHost.cpp", "appcache/ApplicationCacheHost.h", "modulescript/ModuleScriptFetchRequest.h", + "private/CrossOriginPreflightResultCache.cpp", + "private/CrossOriginPreflightResultCache.h", + "private/FrameClientHintsPreferencesContext.cpp", + "private/FrameClientHintsPreferencesContext.h", + "private/PrerenderHandle.cpp", + "private/PrerenderHandle.h", "resource/CSSStyleSheetResource.cpp", "resource/CSSStyleSheetResource.h", "resource/DocumentResource.cpp",
diff --git a/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp b/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp index 450a12e..468915d 100644 --- a/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp +++ b/third_party/WebKit/Source/core/loader/DocumentThreadableLoader.cpp
@@ -31,17 +31,18 @@ #include "core/loader/DocumentThreadableLoader.h" +#include <memory> #include "core/dom/Document.h" #include "core/dom/TaskRunnerHelper.h" #include "core/frame/FrameConsole.h" #include "core/frame/LocalFrame.h" #include "core/inspector/InspectorInstrumentation.h" #include "core/inspector/InspectorTraceEvents.h" -#include "core/loader/CrossOriginPreflightResultCache.h" #include "core/loader/DocumentThreadableLoaderClient.h" #include "core/loader/FrameLoader.h" #include "core/loader/FrameLoaderClient.h" #include "core/loader/ThreadableLoaderClient.h" +#include "core/loader/private/CrossOriginPreflightResultCache.h" #include "core/page/ChromeClient.h" #include "core/page/Page.h" #include "platform/SharedBuffer.h" @@ -59,7 +60,6 @@ #include "wtf/Assertions.h" #include "wtf/PtrUtil.h" #include "wtf/WeakPtr.h" -#include <memory> namespace blink {
diff --git a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp index 607cefdf..e301c9d 100644 --- a/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp +++ b/third_party/WebKit/Source/core/loader/FrameFetchContext.cpp
@@ -30,6 +30,8 @@ #include "core/loader/FrameFetchContext.h" +#include <algorithm> +#include <memory> #include "bindings/core/v8/ScriptController.h" #include "bindings/core/v8/V8DOMActivityLogger.h" #include "core/dom/Document.h" @@ -49,7 +51,6 @@ #include "core/inspector/InspectorNetworkAgent.h" #include "core/inspector/InspectorTraceEvents.h" #include "core/loader/DocumentLoader.h" -#include "core/loader/FrameClientHintsPreferencesContext.h" #include "core/loader/FrameLoader.h" #include "core/loader/FrameLoaderClient.h" #include "core/loader/MixedContentChecker.h" @@ -57,6 +58,7 @@ #include "core/loader/PingLoader.h" #include "core/loader/ProgressTracker.h" #include "core/loader/appcache/ApplicationCacheHost.h" +#include "core/loader/private/FrameClientHintsPreferencesContext.h" #include "core/page/NetworkStateNotifier.h" #include "core/page/Page.h" #include "core/paint/FirstMeaningfulPaintDetector.h" @@ -81,8 +83,6 @@ #include "public/platform/WebInsecureRequestPolicy.h" #include "public/platform/WebViewScheduler.h" #include "wtf/Vector.h" -#include <algorithm> -#include <memory> namespace blink {
diff --git a/third_party/WebKit/Source/core/loader/HttpEquiv.cpp b/third_party/WebKit/Source/core/loader/HttpEquiv.cpp index ec4fdffa..48c065cf 100644 --- a/third_party/WebKit/Source/core/loader/HttpEquiv.cpp +++ b/third_party/WebKit/Source/core/loader/HttpEquiv.cpp
@@ -12,7 +12,7 @@ #include "core/frame/csp/ContentSecurityPolicy.h" #include "core/inspector/ConsoleMessage.h" #include "core/loader/DocumentLoader.h" -#include "core/loader/FrameClientHintsPreferencesContext.h" +#include "core/loader/private/FrameClientHintsPreferencesContext.h" #include "core/origin_trials/OriginTrialContext.h" #include "platform/HTTPNames.h" #include "platform/loader/fetch/ClientHintsPreferences.h"
diff --git a/third_party/WebKit/Source/core/loader/LinkLoader.cpp b/third_party/WebKit/Source/core/loader/LinkLoader.cpp index 4110e69..5ec5519 100644 --- a/third_party/WebKit/Source/core/loader/LinkLoader.cpp +++ b/third_party/WebKit/Source/core/loader/LinkLoader.cpp
@@ -42,7 +42,7 @@ #include "core/inspector/ConsoleMessage.h" #include "core/loader/DocumentLoader.h" #include "core/loader/NetworkHintsInterface.h" -#include "core/loader/PrerenderHandle.h" +#include "core/loader/private/PrerenderHandle.h" #include "core/loader/resource/LinkFetchResource.h" #include "platform/Prerender.h" #include "platform/RuntimeEnabledFeatures.h"
diff --git a/third_party/WebKit/Source/core/loader/CrossOriginPreflightResultCache.cpp b/third_party/WebKit/Source/core/loader/private/CrossOriginPreflightResultCache.cpp similarity index 98% rename from third_party/WebKit/Source/core/loader/CrossOriginPreflightResultCache.cpp rename to third_party/WebKit/Source/core/loader/private/CrossOriginPreflightResultCache.cpp index 513e453..1bb251f 100644 --- a/third_party/WebKit/Source/core/loader/CrossOriginPreflightResultCache.cpp +++ b/third_party/WebKit/Source/core/loader/private/CrossOriginPreflightResultCache.cpp
@@ -24,14 +24,14 @@ * */ -#include "core/loader/CrossOriginPreflightResultCache.h" +#include "core/loader/private/CrossOriginPreflightResultCache.h" +#include <memory> #include "platform/HTTPNames.h" #include "platform/loader/fetch/FetchUtils.h" #include "platform/network/ResourceResponse.h" #include "wtf/CurrentTime.h" #include "wtf/StdLibExtras.h" -#include <memory> namespace blink {
diff --git a/third_party/WebKit/Source/core/loader/CrossOriginPreflightResultCache.h b/third_party/WebKit/Source/core/loader/private/CrossOriginPreflightResultCache.h similarity index 99% rename from third_party/WebKit/Source/core/loader/CrossOriginPreflightResultCache.h rename to third_party/WebKit/Source/core/loader/private/CrossOriginPreflightResultCache.h index 1fa930e2..46a8445 100644 --- a/third_party/WebKit/Source/core/loader/CrossOriginPreflightResultCache.h +++ b/third_party/WebKit/Source/core/loader/private/CrossOriginPreflightResultCache.h
@@ -27,12 +27,12 @@ #ifndef CrossOriginPreflightResultCache_h #define CrossOriginPreflightResultCache_h +#include <memory> #include "platform/loader/fetch/ResourceLoaderOptions.h" #include "platform/weborigin/KURLHash.h" #include "wtf/HashMap.h" #include "wtf/HashSet.h" #include "wtf/text/StringHash.h" -#include <memory> namespace blink {
diff --git a/third_party/WebKit/Source/core/loader/FrameClientHintsPreferencesContext.cpp b/third_party/WebKit/Source/core/loader/private/FrameClientHintsPreferencesContext.cpp similarity index 91% rename from third_party/WebKit/Source/core/loader/FrameClientHintsPreferencesContext.cpp rename to third_party/WebKit/Source/core/loader/private/FrameClientHintsPreferencesContext.cpp index 69ad42a..eca90359 100644 --- a/third_party/WebKit/Source/core/loader/FrameClientHintsPreferencesContext.cpp +++ b/third_party/WebKit/Source/core/loader/private/FrameClientHintsPreferencesContext.cpp
@@ -2,7 +2,7 @@ // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. -#include "core/loader/FrameClientHintsPreferencesContext.h" +#include "core/loader/private/FrameClientHintsPreferencesContext.h" #include "core/frame/UseCounter.h"
diff --git a/third_party/WebKit/Source/core/loader/FrameClientHintsPreferencesContext.h b/third_party/WebKit/Source/core/loader/private/FrameClientHintsPreferencesContext.h similarity index 100% rename from third_party/WebKit/Source/core/loader/FrameClientHintsPreferencesContext.h rename to third_party/WebKit/Source/core/loader/private/FrameClientHintsPreferencesContext.h
diff --git a/third_party/WebKit/Source/core/loader/PrerenderHandle.cpp b/third_party/WebKit/Source/core/loader/private/PrerenderHandle.cpp similarity index 98% rename from third_party/WebKit/Source/core/loader/PrerenderHandle.cpp rename to third_party/WebKit/Source/core/loader/private/PrerenderHandle.cpp index bf8f608..2124803 100644 --- a/third_party/WebKit/Source/core/loader/PrerenderHandle.cpp +++ b/third_party/WebKit/Source/core/loader/private/PrerenderHandle.cpp
@@ -28,7 +28,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "core/loader/PrerenderHandle.h" +#include "core/loader/private/PrerenderHandle.h" #include "core/dom/Document.h" #include "core/frame/LocalFrame.h"
diff --git a/third_party/WebKit/Source/core/loader/PrerenderHandle.h b/third_party/WebKit/Source/core/loader/private/PrerenderHandle.h similarity index 100% rename from third_party/WebKit/Source/core/loader/PrerenderHandle.h rename to third_party/WebKit/Source/core/loader/private/PrerenderHandle.h
diff --git a/third_party/WebKit/Source/platform/heap/Persistent.h b/third_party/WebKit/Source/platform/heap/Persistent.h index 2527ce0..0f9e0a5 100644 --- a/third_party/WebKit/Source/platform/heap/Persistent.h +++ b/third_party/WebKit/Source/platform/heap/Persistent.h
@@ -262,18 +262,6 @@ DCHECK_EQ(¤t->heap(), &m_creationThreadState->heap()); } } - -#if defined(ADDRESS_SANITIZER) - // ThreadHeap::isHeapObjectAlive(m_raw) checks that m_raw is a traceable - // object. In other words, it checks that the pointer is either of: - // - // (a) a pointer to the head of an on-heap object. - // (b) a pointer to the head of an on-heap mixin object. - // - // Otherwise, ThreadHeap::isHeapObjectAlive will crash when it calls - // header->checkHeader(). - ThreadHeap::isHeapObjectAlive(m_raw); -#endif #endif }